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 に置き換えるだけです。