以下の3つの機能のうち:
getc getchar & scanf
標準入力から文字を読み取るのに最適なものはどれですか?その理由は?
これらの機能のいずれかを他の機能よりも優れたものにする既知の欠点や制限はありますか?
標準入力から 1 文字を読み取るだけの場合getchar()
は、 が適切な選択です。より複雑な要件がある場合は、getchar()
十分ではありません。
getc()
別のストリーム (たとえば、 で開かれたストリーム) から読み取ることができますfopen()
。scanf()
一度に複数の文字を読み取ることができます。使用時の最も一般的なエラーgetchar()
は、変数を使用しchar
て結果を格納しようとすることです。返される値の範囲は「 の範囲の値に単一の負の値を加えたもの」int
であるため、変数を使用する必要があります。変数には、これに対して十分な範囲がありません。つまり、完全に有効な文字の戻り値を と混同する可能性があります。についても同様です。getchar()
unsigned char
EOF
char
EOF
getc()