Zabezpieczenie strumienie wejściowego przed błędnymi danymi
Ostatnio zmodyfikowano 2012-02-25 13:00
diego997 Temat założony przez niniejszego użytkownika |
Zabezpieczenie strumienie wejściowego przed błędnymi danymi » 2012-02-25 12:20:12 int a;
while( 1 ) { cin >> a; if( a == 1 || a == 2 || a == 3 ) cout << a; else cin.sync(); }
Gdy nie ma tego cin.sync() i wpiszę np k to program w nieskończoność wypisuje coś na ekranie natomiast z cin.sync() nic nie wypisuje ale także nie ma możliwości pobrania nowego znaku po prostu omija cin >> a; Wiecie może jak temu zaradzić :D ? |
|
SeaMonster131 |
» 2012-02-25 12:44:13 while( 1 ) { cin.clear(); cin.sync(); cin >> a; if( a == 1 || a == 2 || a == 3 ) cout << a; }
? |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2012-02-25 12:51:33 Nie do końca dobrze działa cały czas trzyma w buforze 1 2 lub 3 |
|
SeaMonster131 |
» 2012-02-25 13:00:41 Hm.. jeżeli wpisze 1 albo 2 albo 3, to ta liczba się wypisuje, no i moge wpisać nową. Jeżeli nie wpisze 1/2/3 to nic sie nie robi, podobnie jak wpisze literę itd. |
|
« 1 » |