我正在尝试从文本文件中打印一行,然后转到下一行并打印,直到没有剩余的行要打印。这是我到目前为止所做的,但它只在我第一次运行程序时才有效。
void ReadFile(FILE *a)
{
char line[23];
while(fgets(line, 22, a) != NULL)
{
printf("%s", line);
}
}
答案 0 :(得分:7)
如果要使用相同的FILE
对象多次执行此操作,则需要将文件指针重置为开头:
void ReadFile(FILE *a)
{
char line[23];
rewind(a);
while(fgets(line, 22, a) != NULL)
{
printf("%s\n", line); // Added new line
}
}
答案 1 :(得分:1)
你不是rewind(a)
文件,因此函数的每次迭代都从最后fgets
离开它的位置开始(在你的情况下是EOF)。