Ciao a tutti! Sto imparando da pochissimo il C++ e ora mi è insorto un problema nel seguente blocco di codice:
codice:
while (in >> cnum >> ch) {
cout << SEPARATOR << "Numeri primi a partire da " << cnum << SEPARATOR;
while(in >> cnum >> ch) {
if (ch == ';') {
cout << SEPARATOR << "Fine dei numeri primi fino al " << cnum
<< SEPARATOR;
if (!in.eof()) {
cout << "\n\nPremi 'c' per continuare a scorrere i numeri primi, "
<< "oppure 'x' per interrompere la lettura";
for( ; ; ) {
action = getch();
if (action == 'x') return false;
else if (action == 'c') break;
}
}
break;
} else {
cout << cnum << "\t";
}
}
}
In pratica questo codice parsa un file con un contenuto del tipo:
codice:
1,1,2,3,5,7,11,13,17,20;50,51,53,77,87,90;
Ogni volta che incontra un ';' chiede all'utente se proseguire a mostrare il contenuto del file o se fermarsi lì.
Però quando incontra l'ultimo punto e virgola chiede ancora se continuare o interrompere la lettura (anche se siamo in fondo al file)
VVoVe: e se ne frega del if(!in.eof())
Come mai? e cosa potrei fare?
Grazie davvero