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

Różnica w działaniu pętli na linuxie i windowsie.

Ostatnio zmodyfikowano 2018-03-05 15:11
Autor Wiadomość
error723
Temat założony przez niniejszego użytkownika
Różnica w działaniu pętli na linuxie i windowsie.
» 2018-03-05 12:36:25
Witam,

Jestem nowy na forum i bawię się c++ wraz z kursem. Do nauki korzystam z C::B na Ubuntu. Jednak, pojawił się problem z wychodzeniem z pętli, program wygląda poprawnie, kompiluje się poprawnie i o dziwno na windowsie działa także poprawnie.

C/C++
#include <iostream>

int main()
{
    double a;
    do {
        cout << "Podaj liczbę inną od 123: ";
        cin >> a;
        while( cin.fail() )
        {
            cin.clear();
            cin.sync();
            cout << "To nie jest liczba, spróbuj ponownie: ";
            cin >> a;
        }
        cout << endl << "Podałeś liczbę: " << a << endl;
    } while( a != 123 );
   
    return 0;
}

Działanie w linuxie po wprowadzeniu obojętnie jakiej liczby program kończy działanie, pod windowsem działa do czasu podania liczby 123. Proszę o pomoc z ustawieniem C::B pod linuxem lub wyjaśnieniem różnicy działania.

Dodatkowo, nic nie zmieniałem jeśli chodzi o compiler jakkolwiek, na wszelki wypadek przywróciłem do defaluts.
Jeśli wcześniej pojawił się podobny problem, proszę o linka i przepraszam za zamieszanie.

Pozdrawiam.
P-169776
YooSy
» 2018-03-05 12:40:22
» Kurs C++ » Poziom 1Obsługa strumienia wejściowego lekcja
Czerwona ramka.
P-169777
error723
Temat założony przez niniejszego użytkownika
» 2018-03-05 12:49:31
Nie do końca to jest problemem. Zmieniłem na
cin.ignore()
 jednak program i tak kończy działanie tak jakby pętla do... while kończyła działanie niezależnie od spełnienia warunku, a właściwie tak jakby warunek zawsze był prawdziwy - przynajmniej tak to rozumiem, natomiast pod windowsem działa to poprawnie.
P-169779
YooSy
» 2018-03-05 14:45:10
cin.ignore( numeric_limits < streamsize >::max(), '\n' );
Czy na pewno po zmianie kodu został on przebudowany?
P-169783
error723
Temat założony przez niniejszego użytkownika
» 2018-03-05 15:11:20
Tak, został. Nie aktywowałem projektu... Temat do zamknięcia, wszystko w porządku.

Dzięki za pomoc, czasem człowiek zatrzymuje się w miejscu bo nie sprawdza rzeczy oczywistych zakładając, że się nie pomylił :)
P-169784
« 1 »
  Strona 1 z 1