Błąd przy wpisaniu złej wartości - następne pytania o wartość są pomijane
Ostatnio zmodyfikowano 2013-10-19 14:43
Narzew Temat założony przez niniejszego użytkownika |
Błąd przy wpisaniu złej wartości - następne pytania o wartość są pomijane » 2013-10-19 14:10:18 Witam. Mam małe pytanko. Otóż jak stworzę pętle, która ma się wykonywać do jakiegoś czasu, i w niej jest prośba o podanie liczby, a podam tam coś co nie jest liczbą, to ta pętla wykonuje się albo w nieskończoność, albo pomija wszystkie prośby o wprowadzenie jakichkolwiek danych. Jest jakaś metoda na sprawdzenie czy użytkownik rzeczywiście podał liczbe, a nie ciąg? Kod w C: #include <stdio.h>
int main() { int liczba; int count = 0; for(;; ) { printf( "Podaj liczbe: " ); scanf( "%d", & liczba ); printf( "Podales %d\n\n", liczba ); count++; if( count == 4 ) { break; } } }
Kod w C++: #include <cstdio> #include <iostream>
using namespace std;
int main() { int liczba; int count = 0; for(;; ) { cout << "Podaj liczbe: "; cin >> liczba; cout << "Podales " << liczba << "\n\n"; count++; if( count == 4 ) { break; } } }
Output z terminala dla wersji C: nikodem@nikodem-K8Upgrade-NF3:~/Pulpit/Workshop/C++$ gcc -o for-c.bin for.c nikodem@nikodem-K8Upgrade-NF3:~/Pulpit/Workshop/C++$ ./for-c.bin Podaj liczbe: 100 Podales 100
Podaj liczbe: 2 Podales 2
Podaj liczbe: 2f Podales 2
Podaj liczbe: Podales 2
nikodem@nikodem-K8Upgrade-NF3:~/Pulpit/Workshop/C++$
Output z terminala dla wersji C++: nikodem@nikodem-K8Upgrade-NF3:~/Pulpit/Workshop/C++$ g++ -o for-cpp.bin for.cpp nikodem@nikodem-K8Upgrade-NF3:~/Pulpit/Workshop/C++$ ./for-cpp.bin Podaj liczbe: 100 Podales 100
Podaj liczbe: 2 Podales 2
Podaj liczbe: 2f Podales 2
Podaj liczbe: Podales 0
nikodem@nikodem-K8Upgrade-NF3:~/Pulpit/Workshop/C++$
Problem w tym, że jak zrobiłem jeden program (prostą grę), który non-stop zadaje użytkownikowi pytanie o liczbę, jeśli zostanie mu podany jakiś ciąg, to poprostu on wywołuje się w nieskończoność. Pomożecie ? |
|
SeaMonster131 |
» 2013-10-19 14:43:43 Czyść strumień. |
|
« 1 » |