2016-05-13 9 views
1
while (getline(stream, thisword, ' ') != 0) {... 

この行はMSVC 2012の下でコンパイルできます。文字列区切り文字として 'SPC' charを渡すことで、処理する入力ストリームに文字列が残っているかどうかをテストすることになります。ポインタがNULLかどうかを大雑把にチェックします。このgetlineテストはMSVC 2012で動作しますが、MSVC 2015のエラーです。どのように修正できますか?

ただし、MSVC 2015では動作しません。コンパイルされません。コンパイルエラーです。警告ではありません。

入力ストリームの最後に達したかどうかを確認するためにフラグメントを更新するにはどうすればよいですか?

+2

コンパイルエラーが発生した場合は、そのエラーメッセージをここに(逐語的に)入れる必要があります。 – crashmstr

答えて

2

は、呼び出されたbasic_istreamオブジェクトへの参照を返します。古い頃、basic_istreamには変換演算子があり、それはであり、それを0と比較することができました。これにはexplicit operator bool()が含まれているため、!= 0(最初は実際には必要ない)を削除する必要があります。

+0

恐ろしい!ありがとう!できます! :-)それは古いものよりも改善です。 :-) –

関連する問題