回答編集履歴

2

fix

2017/08/25 00:17

投稿

mattn
mattn

スコア5030

test CHANGED
@@ -107,3 +107,17 @@
107
107
  }
108
108
 
109
109
  ```
110
+
111
+
112
+
113
+ 勘違いされたのは、おそらく変数が数字だから `%d` を使うべきと思われた部分かと思います。scanf や sscanf、fscanf といった関数は、`%d` が与えられると入力から数字のみを読み取り、それ以外がくると入力を中断し、それを数値に変換して引数で与えられたアドレスにコピーします。
114
+
115
+
116
+
117
+ ですので `文字` を入力して貰うには `%d` でなく `%c` でなければなりません。
118
+
119
+
120
+
121
+ であれば `getchar()` でいいじゃんと思うかもしれませんが、getchar() は行入力でないため、1文字入力してバックスペースで直すといった事が出来なくなります。
122
+
123
+

1

fix

2017/08/25 00:17

投稿

mattn
mattn

スコア5030

test CHANGED
@@ -74,7 +74,7 @@
74
74
 
75
75
 
76
76
 
77
- getchar(); /* 改行文字であれば抜き取っておく */
77
+ getchar(); /* 改行文字抜き取っておく */
78
78
 
79
79
 
80
80