[問題] 老梗的猜數字 (C++)

看板Programming作者 (殺人電風扇)時間16年前 (2008/04/20 21:11), 編輯推噓2(207)
留言9則, 3人參與, 最新討論串1/3 (看更多)
雖然這是一個快被討論到爛掉的題目 不過我還是要來問一下XD 主程式部分都已經OK 但是老師和我說要是輸入英文的話 程式就會錯誤 要我回去修改 在參考了精華區裡面的猜數字&cin的特殊用法 修改程式碼後 變成現在可以正確判定是不是正確輸入數字 或者輸入的是英文or英文混雜數字 但是問題來了 確定是數字後 有些數字會無法繼續進行下面的程式碼 讓我非常苦惱 附上cpp檔 http://eric8347.googlepages.com/guess.cpp 請求各位大大了... -- http://eric8347.blogspot.com -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.115.22.7

04/20 21:49, , 1F
if(!cin.good()) { 清除 buffer }
04/20 21:49, 1F

04/20 21:58, , 2F
是在判定完數字/英文後清除buffer這樣嗎
04/20 21:58, 2F

04/20 22:01, , 3F
不是 這樣做是因為 cin 要讀 int 卻
04/20 22:01, 3F

04/20 22:02, , 4F
讀到非數字字元時會變成 error 狀態
04/20 22:02, 4F

04/20 22:02, , 5F
所以用 cin.good() 檢查狀態決定下一
04/20 22:02, 5F

04/20 22:03, , 6F
步該怎麼做 如果錯誤就清除 buffer
04/20 22:03, 6F

04/20 22:09, , 7F
清除buffer是cin.clear();這樣嗎?
04/20 22:09, 7F

04/21 03:31, , 8F
雖然不太好 不過清空 Buffer 可以用
04/21 03:31, 8F

04/21 03:31, , 9F
fflush( stdin ); 這個方法
04/21 03:31, 9F
文章代碼(AID): #182q4GKZ (Programming)
文章代碼(AID): #182q4GKZ (Programming)