[問題] 自製加密程式的小小問題--while多跑一圈

看板C_and_CPP (C/C++)作者 (阿鴻)時間15年前 (2011/02/06 19:16), 編輯推噓5(5011)
留言16則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) dev c++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): while迴圈在未經使用者輸入資料的情況下多跑了一遍 餵入的資料(Input): 256 cpp is good 123 is One Two Three 預期的正確結果(Expected Output): yll eo ckkz 789 eo Kja Psk Pdnaa 錯誤結果(Wrong Output): <--這裡多了一行 yll eo ckkz 789 eo Kja Psk Pdnaa 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/AtYsrtKE 補充說明(Supplement): 將第11行的註解刪掉後, 會變成這樣: 預期: 256 yll eo ckkz 256 789 eo Kja Psk Pdnaa 錯誤: 256 很明顯跑了第11行的內容 256 yll eo ckkz 256 789 eo Kja Psk Pdnaa 請幫幫我,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.24.153.60

02/06 19:22, , 1F
看得好累@_@
02/06 19:22, 1F

02/06 19:23, , 2F
不好意思,我程式都打得很長~~
02/06 19:23, 2F

02/06 19:37, , 3F
cin.get(); <- 試一下
02/06 19:37, 3F

02/06 19:38, , 4F
不行....編譯錯誤
02/06 19:38, 4F

02/06 19:47, , 5F
讀完256剩換行字元
02/06 19:47, 5F

02/06 19:49, , 6F
第一行的 2 後面有一個換行字元,想辦法吃了他
02/06 19:49, 6F

02/06 19:49, , 7F
我錯了 請看五樓正解 抱歉
02/06 19:49, 7F

02/06 20:13, , 8F
不了解5樓的意思....
02/06 20:13, 8F

02/06 20:25, , 9F
如果你用debugger去追 會發現輸入256之後再讀入一行
02/06 20:25, 9F

02/06 20:26, , 10F
就會讀到一個換行字元
02/06 20:26, 10F

02/06 20:26, , 11F
解法就是手動把空白字元吃掉
02/06 20:26, 11F

02/06 20:30, , 12F
可是我讀到的是\0,要怎麼吃掉?(很抱歉,新手一個)
02/06 20:30, 12F

02/06 20:45, , 13F
1.讀完數字後讀一行不做任何事
02/06 20:45, 13F

02/06 20:47, , 14F
或2.第一次讀入不做任何事
02/06 20:47, 14F

02/06 20:49, , 15F
謝謝,我解決了,只要把第7行寫成scanf("%d ",i)就ok了
02/06 20:49, 15F

02/08 16:23, , 16F
我比較想知道為什麼會編譯錯誤
02/08 16:23, 16F
文章代碼(AID): #1DJeCZIL (C_and_CPP)
文章代碼(AID): #1DJeCZIL (C_and_CPP)