使用顺序文件名打开文件

时间:2013-12-22 16:40:41

标签: c file

对于作业,我正在尝试输出具有不同名称的多个文件,例如file_1.datfile_2.dat等。我希望我可以像fprintffscanf那样执行此操作,但这不起作用。

任何人都会建议(下面的代码是我使用的)

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

3 个答案:

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