Kontrola strumienia wejściowego
Ostatnio zmodyfikowano 2017-11-20 23:36
sair Temat założony przez niniejszego użytkownika |
Kontrola strumienia wejściowego » 2017-11-20 21:38:21 Witam, Zacznę od tego że korzystam z VS Postanowiłem napisać b.prosty "programik" w który nie puści uzytkownika dalej jeśli ten nie poda prawidłowej wartości #include <iostream> #include <string> #include<conio.h> #include<string>
using namespace std; int main() { string napis; int liczba; do { cin.sync(); cin.clear(); cin >> napis; } while( cin.fail() ); do { cin.sync(); cin.clear(); cin >> liczba; } while( cin.fail() ); cout << napis; cout << liczba; _getch(); return 0; } Jeśli dla INTa podam jakiś tekst (np."napis") nie wyrzuca błędu ale nie mogę spróbować kolejny raz podać wartości Proszę o jakieś wskazówki :) |
|
pekfos |
» 2017-11-20 22:01:45 Zamien clear i sync. |
|
sair Temat założony przez niniejszego użytkownika |
» 2017-11-20 22:24:36 chodzi o zmianę kolejności? jeśli tak, to nadal nie działa |
|
pekfos |
» 2017-11-20 22:27:39 Więc popraw to też w tym drugim miejscu, gdzie masz ten sam błąd. |
|
sair Temat założony przez niniejszego użytkownika |
» 2017-11-20 22:28:52 poprawiłem w obu miejscach :/ |
|
pekfos |
» 2017-11-20 22:30:33 No to pokaż ten kod. |
|
sair Temat założony przez niniejszego użytkownika |
» 2017-11-20 22:31:14 #include <iostream> #include <string> #include<conio.h> #include<string>
using namespace std; int main() { string napis; int liczba; do { cin.clear(); cin.sync(); cin >> napis; } while( cin.fail() ); do { cin.clear(); cin.sync(); cin >> liczba; } while( cin.fail() ); cout << napis; cout << liczba; _getch(); return 0; } |
|
pekfos |
» 2017-11-20 22:45:13 Czyżby w końcu sync przestało działać..? Faktycznie kod nie działa pod VS. Tymczasem zrób wg wersji pod Linuksa.
//edit: pod v110_xp działa, pod v141_xp już nie. Yep, lekcja do przerobienia w końcu. |
|
« 1 » 2 |