Fstream duplica ultimo carattere

di il
3 risposte

Fstream duplica ultimo carattere

Come mai il seguente codice stampa per due volte l'ultimo carattere?
	
ifstream file(filename);
	while(!file.eof()){	
		file.get(ch);
		cout << ch;		
	}

3 Risposte

  • Re: Fstream duplica ultimo carattere

    Perché la condizione di eof viene attivata solo dopo che si è superato l'ultimo carattere.
  • Re: Fstream duplica ultimo carattere

    Quindi se nel while inserisco il get(ch) dovrei poter attivare l'eof prima della stampa. Ora, è indifferente mettere
     while (!file.eof() && file.get(ch))  
    oppure con le due condizioni invertite di posizione? Il compilatore, praticamente, legge prima la condizione di destra o quella di sinistra?
  • Re: Fstream duplica ultimo carattere

    Puoi semplicemente scrivere
    
    while(file.get(ch))
          cout << ch;      
    
Devi accedere o registrarti per scrivere nel forum
3 risposte