2015-06-22 2 views
0

У меня есть несколько указателей файлов. Во время цикла я хочу напечатать что-то в определенном файле. Какой файл зависит от прохождения цикла.c-function fprintf указатель файла переменной

fprintf(stream,"v t \n"); 

С помощью «потока» я выбираю файл. Возможно ли передать определенный элемент массива в виде потока?

Например:

FILE *vx; 
FILE *vy; 
FILE *vz; 

vx=fopen("vx.txt","w"); 
vy=fopen("vy.txt","w"); 
vz=fopen("vz.txt","w"); 

pointer[]={vx,vy,vz}; 

while(n<4) 
{ 
    funck(n, k, v, w, h); 
    fprintf(pointer[n-1],"v t \n"); 
    n+=1; 
} 

ли это возможно, чтобы сохранить указатель файла в массив? Это хорошее решение?

+4

Да, это возможно. – haccks

+2

Массивы (как фиксированные, так и динамически выделенные) указателей очень распространены, просто посмотрите аргументы функции 'main', чтобы их найти. –

+0

Но какой тип данных должен иметь массив? – 13Thison13

ответ

1

Да, это возможно, если вы передаете переменную типа FILE * в fprintf().

Тип массива должен быть типа FILE*, так как указатели хранилища массива ссылаются на объект FILE (FILE*).

Если вы использовали указатели, тип указателя должен быть В FILE**, так как это указатель (*) на который ссылается FILE объекта (FILE*).

Смежные вопросы