2017-09-08 16 views
0

次の文字列を読み取ることなくファイルの終わりに達したかどうかを確認するにはどうすればよいですか?ファイルの終わりに到達したかどうかをチェックする

実際、私のコードでは、次の文字がファイルの終わりにつながるかどうかを2回確認したい場合があります。初めて次の文字列を読むことでチェックしますが、必要な文字列がすでに読み込まれているので、この方法ではチェックできません。文字列をもう一度読み込んだり、ファイルポインタを後ろに動かしたりせずに2回目のチェックを行う方法...

(コメントで説明しました)

+2

[C++で次の文字がEOFかどうかを知る方法](https://stackoverflow.com/questions/6283632/how-to-know-if-the-next-character-is) -eof-in-c) – user8153

+0

私はそれを見ました...そのfile.peek()は適切な結果を与えていません... file.eof()のように最後の文字列を2回も出力しています。 –

答えて

0

次の文字がファイルの終わりにつながるかどうかを2回確認したいと思います。

  1. ファイルを読み始める前に、内容の長さを見つけます。その方法については、calculate size of fileを参照してください。

  2. tellg()を使用すると、いつでもファイルの位置を照会できます。位置がちょうど内容の長さより1つ小さい場合、次の文字を読むとファイルの終わりにつながることがわかります。

関連する問題