Как открыть несколько файлов, используя fopen и указатель файла? - PullRequest
2 голосов
/ 05 сентября 2011

У меня есть заранее определенное количество одномерных двойных массивов, и я хочу записать каждый из них в файл.Например, если у меня 96 массивов, я хотел бы иметь 96 различных файлов, содержащих эти массивы.

Я инициализирую файл следующим образом:

FILE * f=fopen("domain001.txt","w");
...
...
...
fclose(f)

Я бы хотелсделать эту инициализацию как «массив файловых указателей».У меня может быть функция, в которую я отправляю количество файлов для инициализации, например, 96, и функция инициализирует 96 текстовых файлов, таких как domain001.txt, в domain096.txt.Как я могу это сделать?

Спасибо за любую помощь.

Ответы [ 2 ]

3 голосов
/ 05 сентября 2011

Я не уверен, что получил то, что ты хочешь .. может это?

FILE* files[FILE_N];
for(int i = 0; i < FILE_N; i++) {
    char filename[50];
    sprintf(filename, "domain%03d", i);
    files[i] = fopen(filename, "w");
}
2 голосов
/ 05 сентября 2011

Вы можете сделать что-нибудь глупое, например:

FILE ** filelist = (FILE **) malloc(96 * sizeof(FILE*));
for(int i = 0; i != 96; ++i) {
    char buf[1024];

    // now we build the file name
    strcpy(buf, "domain"); // "domain"
    sprintf(buf+6,"%03d", i+1); // "domain001" ... "domain096")
    strcat(buf, ".txt"); // "domain001.txt" ... "domain096.txt"

    // open file
    filelist[i] = fopen(buf, "w");
}

, и теперь filelist[i] соответствует i -ому файлу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...