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

[lekcja] Rozdział 17. Co to są funkcje i jak się z nich korzysta. Pierwsze zadanie.

Ostatnio zmodyfikowano 2017-01-03 19:47
Autor Wiadomość
int_main
Temat założony przez niniejszego użytkownika
[lekcja] Rozdział 17. Co to są funkcje i jak się z nich korzysta. Pierwsze zadanie.
» 2017-01-02 07:53:23
Czy może mi ktoś napisać tu jak zrobić to pierwsze zadanie, bym mógł przeanalizować kod? Nie mogę wykombinować jak zrobić blokadę na niewłaściwe dane wprowadzane przez użytkownika.

http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Funkcje-pierwsze-starcie/291
P-155807
carlosmay
» 2017-01-02 15:30:04
C/C++
int wczytaj_liczbe()
{
    int liczba;
    while( !( std::cin >> liczba ) ) {
        std::cin.clear();
        std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' );
        return liczba;
    }
}

edit: @down - dzięki pekfos.
P-155813
pekfos
» 2017-01-02 17:07:25
Ta funkcja jest błędna.
P-155820
carlosmay
» 2017-01-02 19:00:46
Poprawiony:
C/C++
int wczytaj_liczbe()
{
    int liczba;
    while( !( std::cin >> liczba ) ) {
        std::cin.clear();
        std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' );
    }
    return liczba;
}
P-155824
int_main
Temat założony przez niniejszego użytkownika
» 2017-01-03 19:25:11
Dzięki panowie. :) Tylko czy mógłby mi ktoś jeszcze wytłumaczyć co znaczy ta linijka w std::cin.ignore ->
std::numeric_limits < std::streamsize >::max(), '\n'?

@EDIT:
Uznałem, że skoro nie miałem tego jeszcze to wywalę to w nawiasie. Dodałem przed tym cin.clear i cin.ignore ponowienie komunikatu z prośbą o wpisanie liczby, przez co on się powtarza kilka razy. Dlaczego tak się dzieje?

C/C++
#include <iostream>
int wczytajLiczbe()


{
    int liczba;
    while( !( std::cin >> liczba ) )
    {
        std::cout << "Podaj LICZBE: ";
        std::cin.clear();
        std::cin.ignore();
    }
    return liczba;
}


int main()
{
    std::cout << "Podaj liczbe: ";
    int liczba = wczytajLiczbe();
    std::cout << "Podales liczbe: " << liczba << std::endl;
    return 0;
}
P-155911
carlosmay
» 2017-01-03 19:47:16
Tylko czy mógłby mi ktoś jeszcze wytłumaczyć co znaczy ta linijka w std::cin.ignore
» Kurs C++ » Poziom 1Obsługa strumienia wejściowego lekcja
P-155913
« 1 »
  Strona 1 z 1