#4
by Bull » 6年前
bad() は ios_base::badbit が設定されていると true を返します。
fail() との違いを確認するために入れたのであって、このプログラムでは
特に必要なかったかもしれないですね。
badbit はストリームに不整合があって場合に、セットされるのですが、
コンソール(キーボード)やディスクファイルから読込んでいる限り、
あまりエラーになることはないかもしれません。
ignore() は入力ストリームを読み捨てます。例えば数字以外("abcd"など)を
入力した場合 fail() が true になりますが、入力された文字列はそのまま
ストリームに残ったままです。間違った入力を読み捨てないと、次に読込ん
だ時に、またエラーになってしまいます。ここでは一行(改行まで)読み捨て
ています。
あと、MAX_INT ではなく numeric_limits<streamsize>::max() の方がいいですね。
bad() は ios_base::badbit が設定されていると true を返します。
fail() との違いを確認するために入れたのであって、このプログラムでは
特に必要なかったかもしれないですね。
badbit はストリームに不整合があって場合に、セットされるのですが、
コンソール(キーボード)やディスクファイルから読込んでいる限り、
あまりエラーになることはないかもしれません。
ignore() は入力ストリームを読み捨てます。例えば数字以外("abcd"など)を
入力した場合 fail() が true になりますが、入力された文字列はそのまま
ストリームに残ったままです。間違った入力を読み捨てないと、次に読込ん
だ時に、またエラーになってしまいます。ここでは一行(改行まで)読み捨て
ています。
あと、MAX_INT ではなく numeric_limits<streamsize>::max() の方がいいですね。