0

関連する質問の1つで使用されたフォームを使用していました。唯一の問題は、ファイルの最後で正しく処理し続けることです。

ファイルはfstreamで、strは文字列です。

未処理の例外MicrosoftC++例外:std :: ios_base :: failure

while(getline(file、str))
{{

}

if(cin.bad()){ //IOエラー } else if(!cin.eof()){ //フォーマットエラー(getlineでは不可能ですが、operator >>では可能です) } そうしないと { //フォーマットエラー(getlineでは不可能ですが、operator >>では可能です) //またはファイルの終わり(違いを生むことはできません) }

4

1 に答える 1

2

例外がスローされる場合std::ios_base::failureは、ファイルに対して例外をオンにしたことが原因である可能性があります(または使用しているコード)。デフォルトではオフになっているはずです。テストするために、whileループの直前でそれらをオフにしてみることができますが、おそらくそれらをオンにしているものを調査する必要があります。

file.exceptions(std::ios_base::goodbit);
于 2010-02-27T09:24:19.750 に答える