Articoli marcati con tag ‘c++’

Individuare l’ultimo carattere di un file in C++

martedì, 14 agosto 2007

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).