![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.4
- 回答日時:
コンソールアプリで
Ctrl+ZそしてEnterとすると「EOF」が入り
終了すると思います。
No.3
- 回答日時:
scanfで数値を読み込む場合などには、このような手が使われる場合があります。
scanfは実際に値を入れられたパラメータの数を返します。
例えば"%d"など数値待ちのときに文字列を入力すると、変数側では受け取れないと判断して、値は読み込まれません。
このとき入力した値はバッファ内に残ってしまうので、gets等をつかって読み捨てる必要があります。
例:数値が入力されるまで、入力を無視する。
int a;
char s[100];
printf("整数を入力してください。");
while (! scanf("%d", &a))
gets(s);
printf("入力値は%dです。\n", a);
No.1
- 回答日時:
もう一度C言語のリファレンスを読み直してください。
int scanf(char *format [, ...]);
なはずです。
scanfは入力(代入)されたパラメータの数を返します。
したがって[改行コード](またはNullキャラクタ)と
いう文字列がstr[]に格納されるため、scanf()の
戻り値は1となり、whileのループからは抜けません。
ループから抜けるには[EOF]を入力する必要があります。
ただし、このwhile()の使い方はしくじると無限ループにに陥る可能性があるので正しく使う必要があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正負を反転させて出力するプロ...
-
数字以外が入力されたらエラー...
-
Eclipseコンソール表示を、リセ...
-
プログラミング初心者です。 Py...
-
Excel VBAで、Application.Inpu...
-
java初心者です。入力されたの...
-
C言語scanf_sで何故か2回入力に...
-
*をユーザーが入力した数字の数...
-
Linuxプログラミングで、キーボ...
-
VB.NETで16進数+16進数や16進...
-
C言語 While文(ループ)内の...
-
"scanf"でエンターで改行させな...
-
キーボードを押すまで処理を中...
-
プログラミングの問題です 「金...
-
c言語の数当てゲームプログラム...
-
2進数の1の数を数える問題
-
あるキーを押したら強制終了さ...
-
キー入力制限について
-
8086のアセンブリで文字列の入...
-
C言語におけるfgetsを用いたル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
数字以外が入力されたらエラー...
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
java初心者です。入力されたの...
-
Eclipseコンソール表示を、リセ...
-
scanfが2回使えない・・・?;
-
C言語 逆ピラミッドの作り方
-
double型が正常に認識されてい...
-
ワードで文字を入力する時の変...
-
コマンドプロンプトからのEOFの...
-
Linuxで入力待ちなしkeyread関...
-
scanf が無視されます
-
if文の条件にscanf関数を使うと…?
-
C言語について
-
cout関数を使っているのですが...
-
enterでループ終了
-
"scanf"でエンターで改行させな...
-
C言語でgetchar();が上手く使え...
-
C言語scanf_sで何故か2回入力に...
おすすめ情報