程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-while(scanf(%d\n,&a)!=EOF&&n)與while(scanf(%d,&a)!=EOF&&n)的區別

c語言-while(scanf(%d\n,&a)!=EOF&&n)與while(scanf(%d,&a)!=EOF&&n)的區別

編輯:編程綜合問答
while(scanf("%d\n",&a)!=EOF&&n)與while(scanf("%d",&a)!=EOF&&n)的區別

while(scanf("%d\n",&a)!=EOF&&n)為何多了個\n,這個判斷n是否為0就用不上了?還是我完全弄錯了?還有EOF有沒有一個簡單點的解釋?

最佳回答:


EOF是個宏,大概就是#define EOF (-1)類似的玩意
scanf輸入時如果遇到輸入流結束,就會返回EOF,也就是-1,所以通過scanf的返回值判斷輸入有否讀完
scanf("\n")表示扔掉輸入流中的不可見字符,主要是配合getchar之類的函數使用,避免後者讀進來一些不可見的控制字符
單純的用scanf輸入的話寫成scanf("%d")scanf("%d\n")基本沒有區別,反而是後者有時候會偶爾出現一點小問題

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved