如何在使用文件数组时更改生成的文件名?

时间:2013-02-14 00:26:52

标签: c

我是编程的新手,我有一个问题,我需要在> 15中编写许多文件,所以我不想做它manualy我使用的文件数组。这工作正常,但问题开始时,我需要给每个文件的位置,并使用“for cyclus”我不能更改目的地中的文件名称这是代码的一部分......

#include <stdio.h>
main()
{
int i;
FILE *files[14];
for(i=0;i<15;i++)
files[i]=fopen("C:\\File.txt" ,"w");
}
for(i=0;i<15;i++)
fclose(files[i]);
getch();
}

问题在于fopen函数,因为它只打开第一个文件,而不打开其他文件... 如果你需要更多的解释,请问尽量尽量证明..谢谢

2 个答案:

答案 0 :(得分:1)

您只提供一个名称,因此您尝试打开一个文件15次,而不是尝试打开15个文件。除非您指定共享模式,否则将失败(至少对于Windows上的大多数编译器而言,这似乎是您正在使用的)。

我的猜测是你要打开15个不同的文件,在这种情况下你需要指定15个不同的文件名。这样做的一种可能性是合成包含索引的名称。由于您似乎正在使用C(尽管有c++标记),我暂时会坚持使用C.

int i;
FILE *f[15];

for (i=0; i<15; i++) {
    char name[32];

    sprintf(name, "File%d.txt", i);
    f[i] = fopen(name, "w");
}

答案 1 :(得分:0)

您需要做的是首先定义您将使用的文件数组。

因此,当您声明FILE *文件[14]时,您需要实际指定每个文件的内容。

首先应该使用特定的文件名声明一组字符串,然后循环它们。

另外,你的for循环是错误的,它应该是

for(i = 0; i < 14; i++) {
...
}

您需要从0开始索引,并在13处停止索引。