私は、ファイルを解析するいくつかの問題を抱えているのstd :: fstreamのエラー
私が解析したいファイルの最後の2行は次のとおりです。
F 814/866/896/1100 1035/
:989 817/965/898[何も、\ nから効果]は
これは私がファイルを読む方法はありません
しかし、私は何も含まれていないファイルの最後の行にいくつかの問題があります。 ファイルの最後の行の前にinFile.ignore(1000, '\n');
が発生し、std::fstream::eof()
が検出されると予想されますが、何らかの理由でそうではありません。 明らかに、sCommand
は、私に何か問題を与えている行に何もない場合、前の行と同じコマンドになります。
これを確認する方法はありますか?そしてもしそうなら、どうですか?
可能な複製:http://stackoverflow.com/questions/21647/reading-from-text-file-until-eof-repeats-last-line要するに、eof()は、ストリームで読むことは何も残っていません。あなたが実際に最後を過ぎて読むことを試みるときだけ、それは真を返すでしょう。これはあなたが*最初に*を読み込み、それが成功したかどうかを確認し、読み込まれた値でのみそれを行う必要があることを意味します。 'while'条件で読み込み操作を行います:' while(inFile >> sCommand){... ' – jrok
これも読むhttp://www.parashift.com/c++-faq-lite/input-output.html# faq-15.4とhttp://www.parashift.com/c++-faq-lite/input-output.html#faq-15.5 – jrok