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

Błąd przy wpisaniu złej wartości - następne pytania o wartość są pomijane

Ostatnio zmodyfikowano 2013-10-19 14:43
Autor Wiadomość
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:

C/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++:

C/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 ?
P-94003
SeaMonster131
» 2013-10-19 14:43:43
Czyść strumień.
P-94012
« 1 »
  Strona 1 z 1