代码仅显示最后一行

时间:2015-03-24 12:49:38

标签: c

char ch [1000] ;

while ( fgets(ch,1000,f) !=NULL);
{
   printf("%s",ch) ;
}

文件f包含多行,但程序的这一部分只显示最后一行

2 个答案:

答案 0 :(得分:1)

在此处删除分号:

while ( fgets(ch,1000,f) !=NULL) ;//This one

分号使循环等效于

while ( fgets(ch,1000,f) !=NULL)
{}
因此,有一个空体。循环继续执行fgets,直到它返回NULL,当它休息时,ch将包含最后一行,这就是printf打印的内容。

答案 1 :(得分:0)

;条件的末尾有一个额外的while

使用此样式可以避免此类错误:

while (fgets(ch, 1000, f) != NULL) {
    printf("%s", ch);
}