[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

File input problem


I'm having a very trivial problem while reading a file.

I'm using C++ and hence classes to read a file. Even though I'm 
checking for eof, I'm getting an extra character in the file's last line.

Here are the files I'm working with -

<C++ source code>
#include <fstream>

int main()
  ifstream inFile;
  char s[80];
  int i = 0;

  inFile.open( "test.txt", ios::in );

  while( inFile.good() )
    s[i++] = inFile.get();

  for( int j = 0; j < i; ++j )
    cout << s[j];
  cout << endl;

  return 0;
</C++ source code>

<test.txt contents>
<test.txt contains *only* five characters>

But, the output I'm getting is

linux# <-- some extra character

Even in a multiline file all the lines are read correctly, but only the last 
line has this extra character.

How do I correct this?