我正在尝试打印文本文件中的一行,然后转到下一行并打印它,直到没有更多的行可供打印。这就是我到目前为止所拥有的,但它只在我第一次运行程序时才起作用。
void ReadFile(FILE *a)
{
char line[23];
while(fgets(line, 22, a) != NULL)
{
printf("%s", line);
}
}发布于 2012-04-19 20:16:02
如果要对同一FILE对象多次执行此操作,则需要将文件指针重置回起始位置:
void ReadFile(FILE *a)
{
char line[23];
rewind(a);
while(fgets(line, 22, a) != NULL)
{
printf("%s\n", line); // Added new line
}
}Reference。
发布于 2012-04-19 20:16:21
您没有对文件进行rewind(a)操作,因此函数的每次迭代都从上一次fgets离开它的地方开始(在本例中为EOF)。
https://stackoverflow.com/questions/10227796
复制相似问题