对于作业,我正在尝试输出具有不同名称的多个文件,例如file_1.dat
,file_2.dat
等。我希望我可以像fprintf
和fscanf
那样执行此操作,但这不起作用。
任何人都会建议(下面的代码是我使用的)
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
for( i = 0; i < 3; i++)
{
FILE *file;
file = fopen("testing_%d.dat", i,"w");
}
}
答案 0 :(得分:1)
sprintf
应该派上用场。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
for( i = 0; i < 3; i++)
{
char buf[100]
FILE *file;
sprintf(buf, "testing_%d.dat", i);
file = fopen(buf, "w");
}
}
答案 1 :(得分:0)
您可以先使用char []
将文件名写入sprintf()
,然后将其传递给fopen()
。
char myFile[200];
sprintf(myFile, "testing_%d.dat", i);
file = fopen(myFile, "w");
答案 2 :(得分:0)
file
应该是FILE *
的数组。此外,fopen
不会格式化printf
之类的字符串。将文件打开逻辑更改为以下内容:
#define NUM_FILES (3)
#define FILE_NAME_LENGTH (100)
FILE *pFileArr[NUM_FILES];
char filename[FILE_NAME_LENGTH];
for(i = 0; i < NUM_FILES; i++)
{
snprintf(filename, FILE_NAME_LENGTH, "testing_%d.dat", i);
pFileArr[i] = fopen(filename, "w");
}