,因爲它似乎對我更具可讀性和強大的我總是用這種方法檢查EOF和fgetc()的錯誤的更好方法是什麼?
int c;
while ((c = fgetc(fp))!=EOF)
{
printf("%c", c);
}
如果(FEOF(FP))比 詮釋三更穩健;而((C =龜etc(FP))!= EOF)
作爲
while(1)
{
c = fgetc(fp);
if (feof(fp))
{
break ;
}
printf("%c", c);
}
比第一版本更堅固。那麼我應該使用哪個版本?請解釋爲什麼該版本更好。
編輯
問題Why is 「while (!feof (file))」 always wrong?有問爲什麼FEOF()在控制迴路總是錯的。但如果以適當的方式檢查feof()
是否總是錯誤?解釋是可觀的。
使用第一個版本。第二個不是「更強大」,但它需要更多的編碼。它也無法檢查錯誤情況。 – fuz
@user - 不,正確的C++方式是while(cin >> c)',而絕對不是**'while(!cin.eof())'。請參閱[爲什麼iostream :: eof內部循環條件被認爲是錯誤的](http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) –
@Kninnug It並不是該問題的重複。 – ashiquzzaman33