如何使用fopen和文件指针打开多个文件?
我有一个预定数量的一维双数组,并且希望将它们中的每一个写入文件。例如,如果我有96个数组,我希望有96个不同的文件包含这些数组。如何使用fopen和文件指针打开多个文件?
我初始化文件,如下所示:
FILE * f=fopen("domain001.txt","w");
...
...
...
fclose(f)
我想这样做初始化为“文件指针数组”。我可能有一个函数,我发送要初始化的文件数量,例如96,函数将初始化96个文本文件,如domain001.txt到domain096.txt。我怎样才能做到这一点?
谢谢你的帮助。
我不知道我有什么你想要的..可能是这样吗?
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");
}
它就像一个魅力!谢谢西蒙娜。 –
你真的很受欢迎! – Simone
你可以做一些俗气,如:
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
个文件。
谢谢,但它没有编译,并给出了错误:C2440:'初始化':不能从'void *'转换为'FILE **' –
对不起,忘了它是C++,你需要施放它。更新回复 –
谢谢Foo Bah,它的工作原理。 –
为什么不创建一个文件指针数组并一次打开一个呢? –
@富Bah。它是如何完成的? –
看到我的回应。 –