Wczytanie liczby, czy dobrze to napisalem ?

0

Hej chce zapytac czy dobrze napisalem program, polecenie jest nastepujace:

"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. "

A moj kod wyglada tak:

#include <iostream>
int wczytajLiczbe()
{
   int a;
   std::cin >> a;
   return a;
}

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

Dobrze wykonalem zadanie z polecenia ? Jesli nie prosze o korekte

0

Musisz dodać pętle z warunkiem sprawdzającą czy zmienna jest liczbą (funkcja isdigit z biblioteki cctype) mój błąd :P rozwiązanie podałem 2 posty nizej

0

Wolalbym jakies proste rozwiazanie ktorego do tej pory mialem okazje sie nauczyc

0
#include <iostream>
#include <cctype>
#include <limits>
#include <cmath>
int wczytajLiczbe()
{
   std::cin.clear();
   std::cin.sync();
   int a;
   std::cin >> a;
   return a;
}

int main()
{
    int i=0, liczba=0;
    do{
        std::cout << "Podaj liczbe: ";
        liczba = wczytajLiczbe();
    }while(!((std::abs(liczba)>=1 && std::abs(liczba)<std::numeric_limits<int>::max())));
    std::cout << "Podales liczbe: " << liczba << std::endl;
    return 0;
}
 
0

@aksjio - Tak wiem o tych limitsach i wgl, kolega ktory mnie upomnial tez je proponowal i dal mi juz dobry kod, tylko ze nie mialem tego jeszcze w kursie ale mimo tego mam takie zadanie, a wiec chcialbym je wykonac przy pomocy tylko tych narzedzi ktore w tym kursie dopiero byly mi przedstawione.

1 użytkowników online, w tym zalogowanych: 0, gości: 1