南臺科技大學

#新手 新手C迴圈輸入問題

2021年2月13日 00:48
在練習題目時需要用到字元的輸入,用迴圈來做發現如果是字元型態的陣列在輸入一次後迴圈會再自己跑一次不會讓我輸入
但是如果是整數型態的陣列就不會
請問為什麼會這樣orz
11
留言 11
文章資訊
Logo
每天有 6 則貼文
共 11 則留言
國立政治大學
當輸入0並按下enter的時候 輸入的其實是兩個字元:'0'與'\n' %c會吃'\n' %d會捨棄'\n'
原 PO - 南臺科技大學
B1 那請問我該怎麼做才可以在迴圈中正常輸入字元呢?
加州大學洛杉磯分校
最後面加 fflush(stdin) 比較建議的好像是 While(getchar() != ‘\n’);
長庚大學
fflush(stdin) 之所以不建議的原因是 這個東西不在標準庫裡 所以不是任何環境都支援 會讓你的程式可能無法在其他平台使用 如果你目前使用的編譯器是可以用他而且你也不在乎程式是否可以在所有平台運行的話 還是可以用啦 不建議就是了 比較好的解法 就像樓上提到的 while(getchar() != ‘\n’); 是一個方法 還有 scanf(“%*[^\n]%*c); 也行 算是一種scanf 的活用
匿名
這則留言已被刪除
已經刪除的內容就像 Dcard 一樣,錯過是無法再相見的!
國立勤益科技大學
能看一下題目嗎 不太了解你是要怎樣的功能🤔 是輸入i:5 下一行就會出現 i:i:5嗎
國立東華大學
補充一下 : fflush(stdin) 只支援windows系統 , 你可以查一下 , 什麼是stdin還有為何在輸入%c時要清空stdin , 就知道原因了 。 祝學習順利 新年快樂 !
原 PO - 南臺科技大學
B6 我想說用字元輸入然後再用判斷是不是數字,再-48的方式存進整數陣列裡面,還是我對這題理解錯誤了。。
原 PO - 南臺科技大學
元智大學
再補充一下: fflush(stdin) 是Undefined Behavior喔! 它只保證對output stream的操作,並沒有保證對input stream的操作。 所以真的不建議用喔!
原 PO - 南臺科技大學
了解了