char ch [1000] ;
while ( fgets(ch,1000,f) !=NULL);
{
printf("%s",ch) ;
}
文件f包含多行,但程序的这一部分只显示最后一行
答案 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);
}