Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - dubbio su oggetto istream
Forum - C/C++ - dubbio su oggetto istream

Avatar
Galatineforever (Normal User)
Newbie


Messaggi: 7
Iscritto: 14/05/2011

Segnala al moderatore
Postato alle 18:18
Venerdì, 24/02/2012
ciao a tutti
stò cercando di imparare il c++ leggendo il libro "accelerated c++" e c'è una cosa che non riesco a capire:

qui c'è un pezzo di codice:

istream& read_hw(istream& in, vector<double>& hw)
{if (in) {
hw.clear() ;
double x;
while (in >> x)
hw.push_back(x);
in.clear();
}
return in;
}

è una funzione che serve a riempire un vettore che verrà chiamata da un read_hw(cin,vettoredariempire), quello che non riesco a capire è a cosa serve quel if (in), visto che anche togliendolo la funzione si comporta allo stesso modo.
chiedo scusa per la domana da niubbone, ma sono proprio agli inizi
ciao grazie


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:12
Venerdì, 24/02/2012
Serve a controllare che lo stream sia valido.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Galatineforever (Normal User)
Newbie


Messaggi: 7
Iscritto: 14/05/2011

Segnala al moderatore
Postato alle 19:20
Venerdì, 24/02/2012
ciao, scusami ma continuo a non capire, in che circostanza potrebbe verificarsi uno stream non valido?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:21
Venerdì, 24/02/2012
Ad esempio un file non aperto


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Galatineforever (Normal User)
Newbie


Messaggi: 7
Iscritto: 14/05/2011

Segnala al moderatore
Postato alle 19:44
Venerdì, 24/02/2012
aaaaah, ok ora ho capito, effettivamente ai files non ci sono ancora arrivato e non
avevo pensato che la funzione poteva servire per uno stream generico e non solo per l'immisione dei dati da tastiera. Grazie mille :)

PM Quote