就是同一個意思,但是合起來寫和分開寫結果為什么不一樣
ch = fgetc(fp);
while(ch != EOF)
{
if(ch == '\n')
{
count++;
}
}
printf("%d\n",count);
結果是阻塞。
但是,
while((ch= fgetc(fp)) != EOF)
{
if(ch == '\n')
{
count++;
}
}
printf("%d\n",count);
這個就可以打出來count的值,why?!!!!!!
uj5u.com熱心網友回復:
第一種寫法,在while回圈中,ch就沒變化,當然會陷入死回圈。第二種寫法,每次while回圈,ch都會重新被fgetc(fp)賦值,總會讀到EOF,所以就能跳出回圈。
uj5u.com熱心網友回復:
第一個ch = fgetc(fp); 在while()回圈體外,ch只從檔案讀入一次,只要這一次不在檔案尾,在while(ch!=EOF)永遠成真,死回圈了。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/284806.html
標籤:C語言
下一篇:改正錯誤