我正在读一个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
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] = ' ';
puts(buffer);
}