Re: [問題] 一種「預設」使用者輸入的技巧

看板C_and_CPP (C/C++)作者 (風樹)時間16年前 (2009/07/08 08:48), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串3/3 (看更多)
※ 引述《rephansu (xanadu)》之銘言: : ※ 引述《sunkill (風樹)》之銘言: : : 類似這樣 : : 不要用 array : : 可以不用 cin : : data type 也可以改 : : 我在 linux 編程 : : 沒有 conio.h : : 感謝 : 為何不要用array? 用 array 要 parse 很多狀況 想說 variable 單純一點會不會 int value; : value=getchar(); : if(value!='\n'){ : ungetc(value,stdin); : scanf("%d",&value); : } else value=1; 改成這樣就可以 不過產生了新問題 輸入一些 space 按 enter 因為 cin 不吃 space 所以就會卡住 失去按 enter 就會有 value=1 的結果 假設 code 加上 if(value==' ') ... 這樣 如果輸入 幾個空白然後再加一些 character 接著數字 這樣就又取不到正確的數字 所以 我還在想… -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.15.111

07/08 12:40, , 1F
抓到空白就 continue 呀
07/08 12:40, 1F

07/08 15:00, , 2F
用getchar讀資料,遇到換行就跳出,非數字就continue,
07/08 15:00, 2F

07/08 15:02, , 3F
遇到數字就ungetc再cin,這樣不管輸入什麼都不會卡住,
07/08 15:02, 3F

07/08 15:12, , 4F
前面給的範例沒考慮第一個字元是換行指令以外的文字,
07/08 15:12, 4F

07/08 15:13, , 5F
會卡住是很正常的
07/08 15:13, 5F

07/09 08:26, , 6F
感謝各位的建議 實作出來了
07/09 08:26, 6F
文章代碼(AID): #1AK-pfd_ (C_and_CPP)
文章代碼(AID): #1AK-pfd_ (C_and_CPP)