Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
std::fstream fin("emptyFile", std::fstream::in); std::cout << fin.eof() << std::endl;
これは印刷され0ます。そのため、関数を使用してeof、ファイルが空かどうかを確認できません。または、いくつかのデータを読み取った後、そこにデータがないかどうかを確認する必要があります。
0
eof
eof()eofbitまだ設定されていないため、間違った結果が得られます。何かを読み取ると、ファイルの終わりを渡し、eofbit設定されます。
eof()
eofbit
以下を避けeof()て使用してください。
std::streampos current = fin.tellg(); fin.seekg (0, fin.end); bool empty = !fin.tellg(); // true if empty file fin.seekg (current, fin.beg); //restore stream position