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

[Rozdział 17] Funkcje - Problem z zadaniem 1.

Ostatnio zmodyfikowano 2015-02-23 19:27
Autor Wiadomość
bojo240
Temat założony przez niniejszego użytkownika
[Rozdział 17] Funkcje - Problem z zadaniem 1.
» 2015-02-20 13:37:00
Witam.
Być może jest to spowodowane tym, że wstałem 2 godziny temu i chyba nie do końca się obudziłem. O ile z innymi zadaniami nie mam problemu, (tj przynajmniej na razie o ile chodzi o zrozumienie :D) to ni cholery nie jestem w stanie zrozumieć polecenia 1.
Jego treść brzmi:
Napisz funkcję, która będzie wczytywała liczby ze standardowego wejścia i zwracała wczytaną wartość. Funkcja ma zagwarantować, że zwracana liczba zawsze jest poprawna. Oznacza to, że funkcja będzie musiała pytać użytkownika o wprowadzenie liczby dopóki nie poda poprawnej.
C/C++
#include <iostream>
int wczytajLiczbe()
{
    //TODO: tu Twój kod
}

int main()
{
    std::cout << "Podaj liczbe: ";
    int liczba = wczytajLiczbe();
    std::cout << "Podales liczbe: " << liczba << std::endl;
    return 0;
}

W razie czego tutaj link do całego tematu : http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Funkcje-pierwsze-starcie/291

Nie rozumiem na jakiej podstawie program ma stwierdzać, czy podana liczba jest poprawna, nie jest to w końcu program, który by losował liczbę...
Ma to być program który już zawiera liczbę podaną przeze mnie? Czy też użytkownik programu ma wpisać 2 razy tą samą liczbę, aby program zakończył swoje działanie..?
P-126866
wilkoo13
» 2015-02-20 15:10:01
czy liczba jest poprwana czyli ze nie jest literą itp
P-126871
bojo240
Temat założony przez niniejszego użytkownika
» 2015-02-20 15:13:40
czyli użytkownik jest zobowiązany po prostu do podania liczby (jakiejkolwiek) aby zakonczyc petle/program (wiadomo ocb) i ma to być zrobione funkcja, jo?
P-126872
Brunon3
» 2015-02-20 15:39:27
Nie znam się na konsolach, ale mi się wydaje że do tego służy

C/C++
cin.good();

która zwraca
true
 gdy wartość jest poprawna. ;)
P-126875
szneqz
» 2015-02-21 19:08:24
Problem został omówiony trochę wcześniej w rozdziale 9
http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Obsluga-strumienia-wejsciowego/12

Nie należy jedynie sprawdzać czy liczba została wprowadzona poprawnie, ale także należy potem wyczyścić flagi błędu i bufor strumienia.
C/C++
std::cin.good();
std::cin.clear; //czyszczenie flagi błędu
std::cin.sync(); //czyszczenie buforu strumienia

Oczywiście dobrze by było przypisać std::cin.good() do jakiejś zmiennej typu bool i wrzucić do pętli.
P-126989
bojo240
Temat założony przez niniejszego użytkownika
» 2015-02-23 19:27:17
Dzięki waszej pomocy byłem w stanie się z tym uporać, dzięki wielkie! :D
P-127263
« 1 »
  Strona 1 z 1