0

我正在阅读 C 中的程序,我想找到新行,但我不知道如何。

我正在阅读这样的文本文件:

    while(!feof(fp)){
         fgets(buffer, 4, fp);
    }

我的文本文件是这样的:

C01 RDA ALB NAC EDF
C02 MCA EDF SLF ADG

我怎么知道 fgets 正在读取的单词是否在新行中?

4

2 回答 2

0

你不应该feof()在做 I/O 之前打电话,这根本不是它的工作原理。

如果您对每个换行符的位置感兴趣,请使用fgetc(). 然后将字符流解析为单词。当换行符出现时,这将变得微不足道。

于 2013-01-09T13:10:37.077 回答
0

你真的想一次得到三个字符(这是你得到的size4 个字符,因为fgets读取的字符比size字符少一个),从而得到碎片

C01  RD A A LB  NAC  ED C02  MC A E DF  SLF  AD

表示换行符)?我不这么认为,而是您一次需要四个字符并修剪单词分隔符。

char buffer[5];
char newline = 1;
while (fgets(buffer, sizeof buffer, fp))
{
    if (newline) puts("new line:");
    newline = buffer[3] == '\n';
    buffer[3] = '\0';
    puts(buffer);
}
于 2014-05-12T13:12:12.503 回答