回答編集履歴
1
少し補足
answer
CHANGED
@@ -4,10 +4,11 @@
|
|
4
4
|
のように表示されると言う意味でしょうか?
|
5
5
|
|
6
6
|
コンソールからの入力は、通常1行単位でバッファリングされます。
|
7
|
-
つまり、Enterキーを押して
|
7
|
+
つまり、Enterキーを押して初めてユーザ・プログラムへ渡されます。
|
8
|
-
1とEnterを押した場合、1という文字とEnter文字('\')の計2文字が渡されます。
|
8
|
+
従って、1とEnterを押した場合、1という文字とEnter文字('\')の計2文字が渡されます。
|
9
9
|
その結果、最初の1に対して「登録をする」が表示され、次の'\n'に対して「入力エラー!」が表示されます。
|
10
|
+
|
10
|
-
'\n'の時何もしないと良いと思います。
|
11
|
+
この場合の対策としては、'\n'の時何もしないと良いと思います。
|
11
12
|
例えば下記のようなイメージです。
|
12
13
|
```C
|
13
14
|
do
|
@@ -16,4 +17,4 @@
|
|
16
17
|
}
|
17
18
|
while (ch == '\n');
|
18
19
|
```
|
19
|
-
他に
|
20
|
+
他にfgets()を使う等の対策も考えられます。
|