逐行读取C文件,其中每行具有未知长度

时间:2015-03-22 00:07:44

标签: c file-io

我正在用C编写一个程序,它打开一个文件并逐行读入文件,在读取行后对每个字符串执行各种操作。

现在我的问题是我有一个循环设置,所以我读了一行并对该行做了必要的事情,然后移到下一行,直到文件结束。我遇到的问题是,我知道最大行长度是80个字符,但它可能小于这个,所以我在行结束时遇到很多麻烦,以便正确执行必要的操作。

我会附上代码,但是我很难接受这部分而且我很早就知道我的代码是否会有所帮助,因为它只是在阅读阶段。当它的长度未知时,我无法弄清楚如何读取一行。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:3)

定义一个大小至少为82的char缓冲区(80个字符+换行符+空字节)。

在一个循环中,反复调用fgets(buffer, sizeof buffer, file)读取一行并执行任务,直到到达文件末尾:

char buffer[82];

while (fgets(buffer, sizeof buffer, file)) {
    /* handle the line in buffer */
    ...
}

警告:buffer包含'\n'作为最后一个字符。