while ( !fi.eof() ) {Valitettavasti arvo on tosi vasta kun kuvitteellisen loppumerkin kohdalle on saavuttu, EI silloin kun se on seuraavana. Esimerkiksi tiedostosta
13.4<EOF>saataisiin kaksi reaalilukua silmukalla:
while ( !fi.eof() ) { fi >> luku; summa += luku; n++; }
while ( 1 ) { // Jos muuta kuin lukuja f >> luku; if ( f.eof() ) break; summa += luku; n++; }Jos silmukka saadaan pysäyttää ensimmäiseen virheeseen, olisi seuraava varmin tapa lukea:
while ( f >> luku ) { summa += luku; n++; }