#include <stdio.h>
int main(void)
{
int i, c, counter[10] = {0}, n;
printf("数字を入力してください。(終了条件:Ctrl+Z)\n");
while ((c = getchar()) != EOF) {
n = c - '0';
if (n >= 0 && n <= 9) {
counter[n]++;
}
}
printf("\n入力した数字の個数\n");
for (i = 0; i < 10; i++) {
printf("%d : %d個入力\t", i, counter[i]);
}
return 0;
}
上のように入力した場合になぜかEORは未定義と表示されます・
これはどうしてなのでしょうか?
この式でいけるはずなのですが。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
EOFなら stdio.h に定義されてる となっている。
stdio.h を開き
#define EOF ~~~
という行が存在するか確認する。
存在しない場合は EOFに相当する物を手で宣言する。
これは使用してるコンパイラやライブラリ群の性質によって変るが一般的には「-1」となっている模様
#define EOF -1
この回答への補足
早急な回答ありがとうございます。
無事解決できました。
それでですが、#define EOF-2でも実行してみたのですが、
#define EOF-1と同じような結果になりました。
しかし、プログラムを組んで行く上でこのような違いは
実行結果に違いとして出てくるのでしょうか?
よろしくお願いします。
No.3
- 回答日時:
EOFマクロはC/C++言語標準ですから定義されてないってのはおかしいです。
コンパイラは何かわかりませんが、多分何か別原因があるはずです。
> しかし、プログラムを組んで行く上でこのような違いは
> 実行結果に違いとして出てくるのでしょうか?
EOFの値は負数としか規定が無いので、ライブラリの提供する値を使ってください。
ライブラリが提供する値と異なる値を使うと、実行時に正常に動かない可能性があります。
そーなんですか。
ならEOF-1で常時表示するようにします・
回答ありがとうございました。
また質問時にはよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# C言語 3 2022/10/04 15:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
数字以外が入力されたらエラー...
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
scanfが2回使えない・・・?;
-
Linuxで入力待ちなしkeyread関...
-
if文の条件にscanf関数を使うと…?
-
scanf が無視されます
-
scanf関数 バッファに残ったエ...
-
java初心者です。入力されたの...
-
scanf("%s", buf);でスペースを...
-
Eclipseコンソール表示を、リセ...
-
double型が正常に認識されてい...
-
入力エラーの処理について。
-
【C言語】入力された文字種別ご...
-
少数部の判定
-
fgetsとループ処理
-
C言語scanf_sで何故か2回入力に...
-
Userformの入力順序をタブオー...
-
enterでループ終了
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
double型が正常に認識されてい...
-
プログラミング初心者です。 Py...
-
正負を反転させて出力するプロ...
-
Excel VBAで、Application.Inpu...
-
C言語について。
-
batプログラム上で文字列を入力...
-
*をユーザーが入力した数字の数...
-
cout関数を使っているのですが...
-
漢字のソートについて
-
数字以外が入力されたらエラー...
-
Userformの入力順序をタブオー...
-
ワードで文字を入力する時の変...
-
Linuxで入力待ちなしkeyread関...
-
java初心者です。入力されたの...
-
EDITコントロールで入力できる...
-
Eclipseコンソール表示を、リセ...
-
小数か整数かを判定する方法
-
C言語scanf_sで何故か2回入力に...
-
VB.NETで16進数+16進数や16進...
-
Linuxプログラミングで、キーボ...
おすすめ情報