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



我正在读一个C语言的程序,我想找到新的行,但是我不知道怎么定位。

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

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

和我的文本文件是这样的:

C01 RDA ALB NAC EDF
C02 MCA EDF SLF ADG

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

你不应该在做I/O之前调用feof(),这根本不是它的工作方式。

如果您对每个换行符的位置很感兴趣,可以使用fgetc()逐个字符读取文件。然后将字符流解析为单词。这样,当换行符出现时,就不会引起注意了。

您真的想一次获得三个字符(这是您获得size 4的结果,因为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] = '';
    puts(buffer);
}

相关内容

  • 没有找到相关文章

最新更新