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

Pytanie o kolejność clear i sync

Ostatnio zmodyfikowano 2013-08-15 15:33
Autor Wiadomość
danielpadewski
Temat założony przez niniejszego użytkownika
Pytanie o kolejność clear i sync
» 2013-08-15 15:21:52
CZeść. Ćwiczyłem powtórzenie pętli do..while że jeśli gracz nie poda prawidłowej liczby to się pętla obraca. i zauważyłem coś , więc mam kod pierwzzy :

C/C++
#include <iostream>
int main()
{
    int a;
    do
    {
        std::cout << "Podaj liczbe : ";
        std::cin.clear();
        std::cin.sync();
        std::cin >> a;
    } while( std::cin.fail() );
   
    std::cout << "Podales liczbe " << a << std::endl;
   
    return 0;
}

Widzicie że najpierw jest cin.clear() a pote cin.sync() . I mamy również następny kod :

C/C++
#include <iostream>
int main()
{
    int a;
    do
    {
        std::cout << "Podaj liczbe : ";
        std::cin.sync();
        std::cin.clear();
        std::cin >> a;
    } while( std::cin.fail() );
   
    std::cout << "Podales liczbe " << a << std::endl;
   
    return 0;
}

Tu pierwsze jest cin.sync() , a dopiero potem cin.clear() . Zauwazylem ze te dwa kody sie od siebie roznia efektem. W pierwszym wszystko dziala prawidlowo, czyli jesli liczba nieprawidlowa to się pętla powtarza a jesli liczba dobra to sie konczy petla i wypisuje tą liczbe. W drugim przypadku jest zle, bo jesli podamy liczbe prawidlową to jest okej, ale jesli podamy liczbe nieprawidłową to pętla powtarza się w nieskończoność nei pytając  użytkownika o podanie liczby. Więc niewiem co to za znaczenie. Rozumiem znaczenie czy czyszczenie jest po podaniu czy przed podaniem liczby ale coś takiego ? Tego naprawde nie rozumiem. Proszę o wytłumaczenie :)
P-90344
pekfos
» 2013-08-15 15:28:41
sync() nie zadziała, jeśli będą ustawione flagi błędu (które clear() czyści).
P-90345
danielpadewski
Temat założony przez niniejszego użytkownika
» 2013-08-15 15:33:36
A dzięki za pomoc. Kurs jest dobry i dużo rozumiem alę się dziwie że to nie jest napisanie :)
P-90346
« 1 »
  Strona 1 z 1