1

我正在尝试从文本文件中打印一行,然后转到下一行并打印,直到没有更多行可打印。这是我到目前为止所拥有的,但它仅在我第一次运行该程序时才有效。

void ReadFile(FILE *a)
{
    char line[23];
    while(fgets(line, 22, a) != NULL)
    {
        printf("%s", line);
    }
}
4

2 回答 2

7

如果您想对同一个对象多次执行此操作,则需要将文件指针重置回起点:FILE

void ReadFile(FILE *a)
{
    char line[23];
    rewind(a);
    while(fgets(line, 22, a) != NULL)
    {
        printf("%s\n", line);    // Added new line
    }
}

参考

于 2012-04-19T12:16:02.470 回答
1

你没有rewind(a)ing 文件,所以函数的每次迭代都从上次fgets离开它的地方开始(EOF,在你的情况下)。

于 2012-04-19T12:16:20.573 回答