Problem z wykonaniem zadania z lekcji o funkcjach.
Ostatnio zmodyfikowano 2015-03-24 20:38
Brunon3 |
» 2015-03-24 20:23:04 Prościej fail() wstawić po prostu do warunku. |
Oczywiście można to zrobić inaczej, ale nie ma co już mieszać. |
-BD. |
|
pekfos |
» 2015-03-24 20:23:23 Przeczytaj lekcję do końca. |
|
Yaoo Temat założony przez niniejszego użytkownika |
» 2015-03-24 20:27:59 #include <iostream>
int wczytajLiczbe() { int a; do { std::cin >> a; std::cout << "Czy cos nawalilo? " << std::cin.fail(); } while( std::cin.fail() ); return a; }
int main() { std::cout << "Podaj liczbe: "; int liczba = wczytajLiczbe(); std::cout << "Podales liczbe: " << liczba << std::endl; return 0; } Gdzie jest błąd w tym kodzie? |
|
pekfos |
» 2015-03-24 20:29:07 Przeczytaj lekcję do końca. |
|
|
Brunon3 |
» 2015-03-24 20:32:58 Pekfosowi chyba chodzi o to: Jeśli chcemy mieć większą kontrolę nad strumieniem wejściowym to powinniśmy czyścić jego zawartość przed każdym wczytaniem danych. Aby to zrobić musimy wywołać dwie metody strumienia std::cin. Pierwszą z nich jest std::cin.clear(), która czyści flagi błędu. Drugą metodą jest std::cin.sync(), która czyści bufor strumienia. |
-BD. |
|
Yaoo Temat założony przez niniejszego użytkownika |
» 2015-03-24 20:38:11 Muszę powiedzieć, że nie doceniałem tych dwóch linijek... std::cin.clear(); std::cin.sync(); Dziękuję Wam bardzo, problem rozwiązany. Następnym razem cztery razy się zastanowię zanim zapytam o bzdury :) |
|
1 « 2 » |