试图在c中打印一行文本文件

时间:2012-04-19 12:13:28

标签: c printf text-files

我正在尝试从文本文件中打印一行,然后转到下一行并打印,直到没有剩余的行要打印。这是我到目前为止所做的,但它只在我第一次运行程序时才有效。

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

2 个答案:

答案 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
    }
}

Reference

答案 1 :(得分:1)

你不是rewind(a)文件,因此函数的每次迭代都从最后fgets离开它的位置开始(在你的情况下是EOF)。