CStdioFile::ReadString incorrectly reports EOF
Posted on 2009-04-03
I'm using Visual C++ 6.0
I found out about an issue with CStdioFile::ReadString reporting EOF incorrectly if the last line in a file is a multiple of 128 without a newline character following it. I read about it online a while back, but I can't find that page anymore. A workaround that I did when this came up was to change my while loop from
while(inFile.ReadString(inLine)||inLine != "")
as it appears it reports EOF incorrectly but still puts the data in the string variable passed.
The problem is I have about 500 of these while loops scattered across different programs and I don't want to change them all to that, not to mention the other variations of EOF checking I do.
Is anyone familiar with this issue? Is there some patch that I can install to fix this?