[Bug c++/17611] New: ifstream could not read multiple files

kemin dot zhou at ferring dot com gcc-bugzilla@gcc.gnu.org
Wed Sep 22 15:32:00 GMT 2004


ifstream objects could not open multiple files.
if ifstream objects have reached the end of the stream, then opening another
files requires to clear() otherwise it failed to open a second file.

example code:
ifstream IN("test1.txt");
while (IN>>line) cout << line << endl;
// at this point IN.bad() == true
IN.close();
// you must give the following command 
IN.clear();
// otherwise the following statement will fail
IN.open("test2.txt");
IN.fail() == true if the bad bit is not cleared.
====
The standard behavior is for the 
ifstream::open(string &infilename) {
  if (bad()) clear();
  ......
}

==========
reading file to the end in the first operation should not have prevented the
opening of the second file.

-- 
           Summary: ifstream could not read multiple files
           Product: gcc
           Version: 3.3.4
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: kemin dot zhou at ferring dot com
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: Linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17611



More information about the Gcc-bugs mailing list