[問題] 輸入的問題

看板C_and_CPP (C/C++)作者 (sunlights)時間13年前 (2012/11/18 20:25), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串2/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) dev C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 如下面程式 int a,b; printf("請輸入兩個整數:\n"); while(scanf("%d %d",&a,&b)==1){ printf("輸入錯誤!!"); } printf("%d %d",a,b); 假設把 while那行改成 while(scanf("%d %d",&a,&b)!=2) 結果輸入錯誤會出現大量的輸入錯誤..為什麼呢?? 明明不是輸入不正確就不等於2嗎?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.241.63.237

11/18 21:49, , 1F
因為鍵盤輸入的 buffer 沒被清空。
11/18 21:49, 1F

11/18 21:50, , 2F
scanf 會回傳 0
11/18 21:50, 2F

11/18 21:50, , 3F
你可以用 rewind(stdin) 來清空 buffer
11/18 21:50, 3F

11/19 14:59, , 5F
謝謝囉~~
11/19 14:59, 5F
文章代碼(AID): #1GgDEuN3 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1GgDEuN3 (C_and_CPP)