ho questo ciclo momento che legge in numero e li emette in decimale, ottale e esadecimale:Scartare lettere eccetto numeri con cin
while(1) {
if (cin >> n)
cout << internal << setfill(' ') << setw(10) << dec << n << internal << setw(12) << oct << n << internal << setw(9) << hex << uppercase << n << endl;
if (cin.fail()) {
break;
}
}
Tuttavia se provo scartare input che non sono numeri con questo non leggerà l'ingresso dopo le lettere:
if (cin.fail()) {
cin.ignore();
}
Come faccio a scartare ingresso, ma in grado di leggere altro ingresso più tardi?
ingresso del campione:
23
678 786 abc
7777
Uscita prevista: Dicembre, Ottobre, hex
23 27 17
678 1246 2A6
786 1422 312
7777 17141 1E61
Manca una chiamata a 'cin.clear()'. Ne hai bisogno per cancellare il 'failbit'. Finché è impostato, tutte le operazioni falliscono immediatamente. –