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

czyszczenie strumienia pod linuxem - zadanie z lekcji 16

Ostatnio zmodyfikowano 2013-12-10 16:57
Autor Wiadomość
dawidrz
Temat założony przez niniejszego użytkownika
czyszczenie strumienia pod linuxem - zadanie z lekcji 16
» 2013-12-10 04:32:08
Witam.
Ostatnio przeniosłem się na linuxa i zauważyłem, że cin.sync() nie działa.
Zastosowałem się do podpowiedzi z tematu lekcji o obsłudze strumienia wejściowego jednak jest mały zgrzyt.
Po uruchomieniu kodu

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
    srand( time( NULL ) );
    int strzal;
    int liczba =( rand() % 1000 ) + 1;
   
    cout << "wylosowano liczbe. zgadnij jaka: " << endl;
    do
    {
        do
        {
            cin.clear();
            std::cin.ignore( 1000, '\n' );
            cin >> strzal;
            cin.good();
            if( cin.good() == false )
                 cout << "zla wartosc. sprobuj ponownie" << endl;
           
        } while( cin.good() == false );
       
        if( strzal > liczba )
             cout << "za duzo" << endl;
        else;
       
        if( strzal < liczba )
             cout << "za malo" << endl;
       
    } while( strzal != liczba );
   
    cout << "gratuluje, wylosowana liczba to: " << liczba << endl;
   
}

program kompiluje się poprawnie, jednak nic się nie dzieje przy pierwszym podawaniu wartości. Bez znaczenia co wpiszę i zatwierdzę enterem nic się nie wydarzy. Dopiero po ponownym wpisaniu wartości program rusza dalej.

Proszę o podpowiedź jak to naprawić.

Dzięki
P-98874
pekfos
» 2013-12-10 16:57:08
Czyść strumień po pobieraniu danych.
P-98903
« 1 »
  Strona 1 z 1