[ROOT] Problem with looping over entries in a file

From: Jan Conrad (conrad@unix.tsl.uu.se)
Date: Wed Aug 21 2002 - 10:16:57 MEST


Hi,



 following MACRO:

{
#include <fstream.h>
#include <iostream.h>

char rootfile[1024], tmpfil[1024];
TString FileList ="idiot.dat";
ifstream fin(FileList);

if (!fin){
  cout << "cannot open file list \n";
  return 1;
    }

// List of monitoring files.



while (!fin->eof()) {

    fin >> rootfile;
    cout << "Processing file: " << "*" << rootfile << "*" <<
'\n';

}
cerr << "Done" << '\n';

}


gives as output:

Processing file: *1*
Processing file: *2*
Processing file: *3*
Processing file: **
Done

The file idiot.dat has the entries:
1
2
3

and more idiot.dat|wc -l gives as answer: 3 (i.e it has really 3
lines, the buffer ends after the 3)

So why the additional ** output ?

Thanks in advance,

Jan Conrad


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Jan CONRAD , ISV, HEPD, Uppsala University
Angstrom Laboratory, room 12145
phone/fax:+46- 18-471 7639/3513



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:05 MET