我正在阅读 C 中的程序,我想找到新行,但我不知道如何。
我正在阅读这样的文本文件:
while(!feof(fp)){
fgets(buffer, 4, fp);
}
我的文本文件是这样的:
C01 RDA ALB NAC EDF
C02 MCA EDF SLF ADG
我怎么知道 fgets 正在读取的单词是否在新行中?
你不应该feof()
在做 I/O 之前打电话,这根本不是它的工作原理。
如果您对每个换行符的位置感兴趣,请使用fgetc()
. 然后将字符流解析为单词。当换行符出现时,这将变得微不足道。
你真的想一次得到三个字符(这是你得到的size
4 个字符,因为fgets
读取的字符比size
字符少一个),从而得到碎片
C01
RD
A A
LB
NAC
ED
F¶
C02
MC
A E
DF
SLF
AD
G¶
(¶
表示换行符)?我不这么认为,而是您一次需要四个字符并修剪单词分隔符。
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);
}