teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

少し補足

2015/11/20 02:42

投稿

Chironian
Chironian

スコア23274

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
- 他にもgets()を使う等も考えられます。
20
+ 他にfgets()を使う等の対策も考えられます。