[問題] 分開輸入兩個char...

看板C_and_CPP作者 (把生活當作挑戰)時間12年前 (2013/04/23 02:07), 編輯推噓1(109)
留言10則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) GCC 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) NO 問題(Question): int main() { char s2,s3; scanf("%c",&s2); printf("tranform letter to lower : %c\n",slower(s2)); puts(""); scanf("%c",&s3); printf("tranform letter to topper : %c\n",stopper(s3)); return 0; } 小弟預期可以輸入s2 和 s3讓他轉換大小寫,可是輸入s2 s3就被跟著輸入了 EX:A 按下ENTER 結果:a (空) EX:Ab 按下ENTER 結果:a B ←這是我所希望的。我的問題發生在那呢?又該怎麼處理呢?? 麻煩大家了,謝謝ORZ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.32.214

04/23 02:09, , 1F
'換行' 也佔一 (到兩) 個字元. scanf 的 format 改成 " %c"
04/23 02:09, 1F

04/23 02:09, , 2F
(百分號前多個空白), 叫 scanf 吃掉空白字元, 含換行
04/23 02:09, 2F

04/23 02:11, , 3F
原來還有這麼簡單的方法!我知道fflush可是我只會用在清
04/23 02:11, 3F

04/23 02:11, , 4F
掉輸入輸出文件>0<
04/23 02:11, 4F

04/23 02:11, , 5F
謝謝scwg!!
04/23 02:11, 5F

04/23 02:15, , 6F
可以再請問小問題嗎?我加入fflush(stdin),並沒有作用
04/23 02:15, 6F

04/23 02:15, , 7F
到底fflush 該怎麼使用才正確呢?
04/23 02:15, 7F

04/23 02:51, , 8F
The behavior of fflush(stdin) is undefined. Don't use it.
04/23 02:51, 8F

04/23 03:05, , 9F
要拿字元就用 fgetc()
04/23 03:05, 9F

04/23 19:03, , 10F
這之前有討論過了,不過我忘了標題
04/23 19:03, 10F
文章代碼(AID): #1HTNn6Kx (C_and_CPP)