Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Kontrola strumienia wejściowego

Ostatnio zmodyfikowano 2017-11-20 23:36
Autor Wiadomość
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


C/C++
#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 :)
P-167016
pekfos
» 2017-11-20 22:01:45
Zamien clear i sync.
P-167019
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
P-167025
pekfos
» 2017-11-20 22:27:39
Więc popraw to też w tym drugim miejscu, gdzie masz ten sam błąd.
P-167026
sair
Temat założony przez niniejszego użytkownika
» 2017-11-20 22:28:52
poprawiłem w obu miejscach :/
P-167027
pekfos
» 2017-11-20 22:30:33
No to pokaż ten kod.
P-167029
sair
Temat założony przez niniejszego użytkownika
» 2017-11-20 22:31:14
C/C++
#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;
}
P-167030
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.
P-167032
« 1 » 2
  Strona 1 z 2 Następna strona