我是编程的新手,我有一个问题,我需要在> 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函数,因为它只打开第一个文件,而不打开其他文件... 如果你需要更多的解释,请问尽量尽量证明..谢谢
答案 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处停止索引。