我有一定数量的一维双数组,并希望将每一个都写入一个文件。例如,如果我有96个数组,我希望有96个不同的文件包含这些数组。
我正在按如下方式初始化文件:
FILE * f=fopen("domain001.txt","w");
...
...
...
fclose(f)
我想将此初始化作为“文件指针数组”。我可能有一个函数,我向其发送要初始化的文件数,例如96,该函数会将96个文本文件(如domain001.txt)初始化为domain096.txt。我怎么能这样做?
感谢您的帮助。
答案 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
个文件。