Pętla do ... while
Ostatnio zmodyfikowano 2017-04-30 18:33
jkachnowicz Temat założony przez niniejszego użytkownika |
Pętla do ... while » 2017-04-29 18:04:15 No cześć =D Szukam pomocy w sprawie programu. Dosyć prostego, jednak nie wiem o co chodzi. Kiedy kompiluję i uruchamiam ten program i wpisuję coś innego niż liczbę (np.: q) program zawiesza się, a komputer zaczyna wydawać dziwne dźwięki. O to problematyczny kod:
#include<iostream> int main() { char correct; correct == 0; long number; do { if (correct >= 1) std::cout << "Polecenie wykonane niepoprawnie" << std::endl; std::cout << "Podaj liczbe" << std::endl; std::cout.clear(); std::cin.sync(); std::cin >> number; ++correct; std::cout << correct; } while(std::cin.fail()); std::cout << "Liczba podana poprawnie" << std::endl; std::cout << number; return 0; } Bardzo proszę o pomoc. Nie mam pojęcia co się dzieje >=O. |
|
DejaVu |
» 2017-04-30 15:06:12 Ostatnimi czasy zmieniła się implementacja cin.sync(), więc nie należy tego używać do celów opisanych w kursie (bo po prostu to nie działa już). |
|
jkachnowicz Temat założony przez niniejszego użytkownika |
» 2017-04-30 16:40:39 Niestety usunięcie cin.sync() nie zadziałało. Jakieś inne pomysły =)? Wydaje mi się, że może to być coś z std::cin.fail(). Taka sama sytuacja jest w tym kodzie:
#include <iostream>
int wczytajLiczbe() { int a; do { std::cin >> a; std::cout<< std::endl; } while (std::cin.fail()); return a; }
int main() { std::cout << "Podaj liczbe: "; int liczba = wczytajLiczbe(); std::cout << "Podales liczbe: " << liczba << std::endl; return 0; }
|
|
karambaHZP |
» 2017-04-30 18:33:36 Doczytaj lekcję do końca i zastosuj std::cin.ignore() . |
|
« 1 » |