Totuusarvotyyppinen metodi eof palauttaa tosi, kun ollaan tiedoston lopun kohdalla.
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++;
}
Jälleen helpompi ratkaisu on perustaa lukusilmukka siihen, että yritetään lukea kokonainen tiedoston rivi ja jos tämä epäonnistuu, on tiedostokin todennäköisesti loppu.