[問題] 新手問題getchar與scanf

看板C_and_CPP (C/C++)作者 (肅殺的十月)時間13年前 (2013/02/19 21:33), 編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/2 (看更多)
#include<stdio.h> #include<stdlib.h> 1 int main() 2 { 3 int a,b; 4 char ch; 5 6 printf("請輸入第一個數字:"); 7 scanf("%d",&a); 8 9 printf("請輸入第二個數字:"); 10 scanf("%d",&b); 11 12 printf("請輸入一個字元:"); 13 scanf("%c",ch); 14 15 printf("您輸入的是%d,%d,%c\n\n",a,b,ch); 16 17 system("pause"); 18 19 } 大家好 我是剛練習寫程式的人 有一個新手問題想請教 上面程式執行時 我輸入前兩個數字的時候都ok 但等到要輸入字元的時候 就會發生錯誤強制關閉 而如果我把第13行改成 ch=getchar(); 他就不給我輸入字元 請問這樣是哪裡出問題了???謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.225.238.129

02/19 21:41, , 1F
&ch
02/19 21:41, 1F
可是我改成&ch也不行耶?

02/19 21:43, , 2F
因為你的 ch 會讀到換行字元
02/19 21:43, 2F

02/19 21:43, , 3F
改成getchar 我猜是因為他會吃到你輸入第二個數字之後的換行
02/19 21:43, 3F

02/19 21:43, , 4F
就是你打完第二個數字之後按下的那個 enter
02/19 21:43, 4F
不懂>< ※ 編輯: doctortwo 來自: 36.225.238.129 (02/19 22:16)

02/20 00:58, , 5F
你的ch讀取到你鍵盤所按的enter 因為這也是個char
02/20 00:58, 5F

02/20 00:59, , 6F
去查查看ASCII吧!! 看看enter在不在裡面^q^
02/20 00:59, 6F
文章代碼(AID): #1H8tyLZ7 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1H8tyLZ7 (C_and_CPP)