Se leggendo un file (di testo o binario) vogliamo sapere se ci troviamo all’ultimo carattere – e non se siamo alla fine del file – è sufficiente che utilizziamo la funzione istream::peek :
if (in.peek() != EOF) { // Azioni da compiere se non siamo all'ultimo carattere // (e quindi il carattere successivo non è la fine del file) }
E’ da notare che cstdio::feof non avrebbe funzionato allo stesso modo, in quanto siamo all’ultimo carattere, ma la fine del file non è ancora stata raggiunta. In questi casi è necessario utilizzare la funzione istream::peek che tenta di leggere il carattere successivo senza estrarlo (cioé lasciandolo come prossimo carattere da estrarre dallo stream).