我正在尝试从文本文件中打印一行,然后转到下一行并打印,直到没有更多行可打印。这是我到目前为止所拥有的,但它仅在我第一次运行该程序时才有效。
void ReadFile(FILE *a)
{
char line[23];
while(fgets(line, 22, a) != NULL)
{
printf("%s", line);
}
}
我正在尝试从文本文件中打印一行,然后转到下一行并打印,直到没有更多行可打印。这是我到目前为止所拥有的,但它仅在我第一次运行该程序时才有效。
void ReadFile(FILE *a)
{
char line[23];
while(fgets(line, 22, a) != NULL)
{
printf("%s", line);
}
}
如果您想对同一个对象多次执行此操作,则需要将文件指针重置回起点:FILE
void ReadFile(FILE *a)
{
char line[23];
rewind(a);
while(fgets(line, 22, a) != NULL)
{
printf("%s\n", line); // Added new line
}
}
参考。
你没有rewind(a)
ing 文件,所以函数的每次迭代都从上次fgets
离开它的地方开始(EOF,在你的情况下)。