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

回答編集履歴

1

cは`char`じゃなくて`int`です。

2016/08/02 22:27

投稿

raccy
raccy

スコア21782

answer CHANGED
@@ -31,7 +31,7 @@
31
31
  buf[0] = '\0'; // 空文字にしておく
32
32
  while (scanf(BUF_SCAN_S, p) == 1) {
33
33
  // 次の文字をチェック
34
- char c = getchar();
34
+ int c = getchar();
35
35
  // 入力が閉じられているのでscanfで見るのは終わり
36
36
  if (c == EOF) {
37
37
  break;
@@ -81,7 +81,7 @@
81
81
  return 1;
82
82
  }
83
83
  p = buf;
84
- char c;
84
+ int c;
85
85
  while ((c = getchar()) != EOF) {
86
86
  // 空白文字なら、バッファに戻して終わり
87
87
  if (isspace(c)) {
@@ -157,4 +157,8 @@
157
157
  }
158
158
  ```
159
159
 
160
- 他とあわせるために、`char *buf;`にしていますが、一番すっきりします。
160
+ 他とあわせるために、`char *buf;`にしていますが、一番すっきりします。
161
+
162
+ ---
163
+
164
+ `getchar()`の戻り値を`char`に入れてた…泣きたい。