如何使用fopen和文件指针打开多个文件?

时间:2011-09-04 20:20:32

标签: c++ visual-c++

我有一定数量的一维双数组,并希望将每一个都写入一个文件。例如,如果我有96个数组,我希望有96个不同的文件包含这些数组。

我正在按如下方式初始化文件:

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

我想将此初始化作为“文件指针数组”。我可能有一个函数,我向其发送要初始化的文件数,例如96,该函数会将96个文本文件(如domain001.txt)初始化为domain096.txt。我怎么能这样做?

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

我不确定我得到了你想要的东西..可能这样吗?

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");
}

答案 1 :(得分:2)

你可以做一些俗气的事情:

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个文件。