看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) win7 64bit CodeBlocks 10.5 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 如果gets()在scanf()下面就沒辦法正常輸入 想知道為什麼會這樣? 餵入的資料(Input): 1 ABC 預期的正確結果(Expected Output): ABC 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/36klSzjN 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.205.55.3
flere:scanf完後你的gets會吃到'\n'所以無法正常讀入 12/04 15:21
flere:可以scanf完後打一行scanf("%c",&eat);把'\n'吃掉 12/04 15:21
flere:或是寫scanf("%d\n",&N),他會把後面的'\n'處理掉 12/04 15:22
flere:不過比較不好因為有時候你要的ABC那一行如果是空行'\n'的話 12/04 15:22
flere:也會被連帶一起被處理掉所以還是eat那個比較好一點 12/04 15:22
謝謝f大 \(^▽^)/ 原來gets跟scanf斷開的地方不一樣 ^^ ※ 編輯: BombCat 來自: 123.205.55.3 (12/04 15:31)
flere:scanf獨到空白或是\n就會停住 12/04 15:32
flere:gets會把一整行讀完,就看input想怎麼輸入就看要用哪個 12/04 15:33
TaiwanXDman:不要用gets啦 用fgets 12/04 15:50
diabloevagto:在scanf的%d前面加上一個空格 12/04 17:37
diabloevagto:別理我...搞錯問題了- - 12/04 17:41
mythnc:scanf() + getchar() + gets() 12/04 20:10