C言語のscanfが実行されないです。
switch文のサンプルコード(list_03.5.c)を作成したのですが、
scanf("%c", &kigou);
の部分が実行されず?記号の入力を受け付けてくれません。
これはどういった動きをしているのでしょうか。
また、どうやって切り分けて解決すればいいでしょう。
コンパイル時や実行時にバグを見つけやすくする便利なオプションなどあるのでしょうか。
C
1#include<stdio.h> 2 3int main() 4{ 5 int a, b, answer; 6 char kigou; 7 8 printf("数字を2つ入力し、[和|差|積|商]を計算します。\n"); 9 printf("1つ目の数字を入力してください。\n"); 10 scanf("%d", &a); 11 printf("2つ目の数字を入力してください。\n"); 12 scanf("%d", &b); 13 printf("記号[+|-|*|/]を入力してください。\n"); 14 scanf("%c", &kigou); // 処理が飛ばされてる!? 15 printf("debug\n"); 16 17 switch(kigou) { 18 case '+': 19 answer = a + b ; 20 printf("%d %c %d = %dです。\n", a,kigou,b,answer); 21 break; 22 case '-': 23 answer = a - b ; 24 printf("%d %c %d = %dです。\n", a,kigou,b,answer); 25 break; 26 case '*': 27 answer = a * b ; 28 printf("%d %c %d = %dです。\n", a,kigou,b,answer); 29 break; 30 case '/': 31 answer = a / b ; 32 printf("%d %c %d = %dです。\n", a,kigou,b,answer); 33 break; 34 default: 35 printf("正しい記号を入力してください。\n"); 36 break; 37 } 38 39 return 0; 40}
[hoge@hoge]# gcc list_03.5.c
[hoge@hoge]# ./a.out
数字を2つ入力し、[和|差|積|商]を計算します。
1つ目の数字を入力してください。
8
2つ目の数字を入力してください。
2
記号[+|-|*|/]を入力してください。
debug
正しい記号を入力してください。
回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2018/08/27 14:15