C 言語の scanf 関数と複数の入力セット

1.scanfの各種データの紹介

%c——入力文字(char)

%s——入力文字列

%d——入力整数型 (int...)

%f——入力浮動小数点型 (float)

%lf——入力浮動小数点型 (double)

注: %p - 印刷アドレス (受信アドレス &)

2.scanfの戻り値と複数の入力セット

scanf は入力関数です

関数の戻り値は次のとおりです。

1. 読み込みに成功すると、実際に読み込んだデータ数が返されます

2. 読み取りに失敗した場合、EOFが返されます。EOF の値は-1です。

したがって、複数の入力を持つプログラムを書きたい場合は、while ループを使用し、 scanf の戻り値をループの判定条件として使用できます。

上記の複数の入力は int 型であるため、EOF を判定条件として使用できます。

しかし、char 型の場合、EOF は使用できるのでしょうか? 実際には使用できません。例を見てみましょう。

この質問では、入力が文字であるかどうかを判断する必要があります。文字は明らかに char 型の複数の入力セットです。

エラーの例を見てみましょう

一見正しいように見えますが、複数のグループを入力する場合、それぞれの入力をスペースまたは改行で区切りますか?

スペースまたは改行を入力すると、scanf も EOF と等しくなくなります。この場合はどうすればよいでしょうか?

!=EOF を ==1 に置き換えるだけです

 

おすすめ

転載: blog.csdn.net/m0_75186846/article/details/131223530