Page 1 of 1

issue about FileStreamDataStream::eof

Posted: Tue Jun 17, 2014 12:42 pm
by oiram
Ogre use "while(!stream->eof())" to check end of file for serializer.
In "FileStreamDataStream::eof()", it use "return mInStream->eof()". It's not correct!
Further Reading:
http://stackoverflow.com/questions/3712 ... f-the-file
http://stackoverflow.com/questions/6283 ... s-eof-in-c
http://www.parashift.com/c++-faq-lite/i ... d-eof.html

I think "return mInStream->peek() == std::istream::traits_type::eof();" to check EOF is better.
What's your advice? :)

Re: issue about FileStreamDataStream::eof

Posted: Tue Jun 17, 2014 1:09 pm
by c6burns
It's only incorrect if you try to use what came from the read operation that set the eof bit (eg. you read() and you don't call gcount() and you just blindly use the buffer you read into)