[問題] c語言 輸入判斷問題 (已解決)

作者: solinari (soli)   2014-04-12 13:14:17
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)

問題(Question):
如何在輸入文字時得到相對應的輸出
以及如果數字後有小數點該如何處理
餵入的資料(Input):
cat
預期的正確結果(Expected Output):
must enter integer :
錯誤結果(Wrong Output):
進入無限迴圈
程式碼(Code):(請善用置底文網頁, 記得排版)
補充說明(Supplement):
試過一些方式可是都沒成功
目前先把處理文字部分的程式碼先刪了
煩請大家幫忙解惑
目前是想輸入數字然後畫菱形,
輸入的數字等於菱形中間的星星數,
然後只能輸入奇數,
輸入偶數或是負數或是文字就會出現對應的輸出
然後再請輸入者重新輸入
然後即使是輸入奇數, 遊戲還是會一直問下去
然後如果是輸入奇數但有後面小數點, 則還是顯示該奇數的菱形
ex.
輸入偶數和負數: %d not odd and > 0
enter ODD size > 0:
輸入文字: must enter integer
enter ODD size > 0:
作者: AndyLeo (打敗超越一切的人)   2014-04-12 13:43:00
用fgets跟sscanf代替scanf
作者: solinari (soli)   2014-04-12 14:05:00
提示是希望用scanf, 還有 while (getchar() != '\n')可是後面那個我不太懂..
作者: EdisonX (卡卡獸)   2014-04-12 14:39:00
while(getchar()!='\n');是放在 scanf 後面一行(兩個都放)原理是如果輸入 5 的話,還會有一個 '\n' 留在系統裡 ;若輸入 5.12 的話,第一個 5 會讀給 n , 後面的 .12('\n')由 getchar() 讀走.
作者: virve (std::vie)   2014-04-13 00:01:00
判斷是否讀入整數可以用scanf的回傳值判斷
作者: solinari (soli)   2014-04-13 00:40:00
小數部分處理好了. 請問輸入者誤輸入文字該如何處理呢?

Links booklink

Contact Us: admin [ a t ] ucptt.com