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

Lekcja 2.15

Ostatnio zmodyfikowano 2016-08-13 17:46
Autor Wiadomość
bartinio07
Temat założony przez niniejszego użytkownika
Lekcja 2.15
» 2016-08-13 14:30:46
Witam,
proszę o sprawdzenie zadania domowego:
Napisz program, który wczyta liczbę, a następnie wypisze ją na ekranie. Zabezpiecz przed wczytaniem nieprawidłowej liczby. Wykorzystaj do tego celu wiedzę z jednego z poprzednich rozdziałów. Sposób działania programu:
1. Podaj liczbę
2. Jeżeli błąd, wróć do kroku 1.
3. Wypisz liczbę, która została podana.

C/C++
#include <iostream>
using namespace std;
int main()
{
    int liczba;
    bool spr;
    cout << "Podaj liczbe "; //podaj liczbe
    cin >> liczba;
    spr = cin.good();
    cin.clear();
    cin.sync();
    if( spr == cin.fail() ) //jesli blad
    do
    {
        cout << "Podaj liczbe: ";
        cin >> liczba;
        spr = cin.good();
        cin.clear();
        cin.sync();
    } while( spr == cin.fail() ); //wroc do kroku pierwszego
   
    cout << "Podana liczba to: " << liczba << endl; //wypisz liczbe, ktora zostala podana
    return 0;
   
}

Według mnie wszystko jest ok, program się uruchamia i działa tak, jak powinien, ale chciałbym, żeby ktoś bardziej doświadczony jeszcze rzucił na to okiem.
P-150801
carlosmay
» 2016-08-13 15:52:54
Niepotrzebnie powtarza się kod. Całe wczytywanie można przenieść do pętli, zrezygnować z if'a.
Nieudane wczytywanie zaskutkuje powtórzeniem pętli, a udane opuszczeniem.
P-150805
bartinio07
Temat założony przez niniejszego użytkownika
» 2016-08-13 17:46:43
Faktycznie, czyli wystarczy po prostu tak?
C/C++
#include <iostream>
using namespace std;
int main()
{
    int liczba;
    bool spr;
    do
    {
        cout << "Podaj liczbe: ";
        cin >> liczba;
        spr = cin.good();
        cin.clear();
        cin.sync();
    } while( spr == cin.fail() ); //wroc do kroku pierwszego
   
    cout << "Podana liczba to: " << liczba << endl; //wypisz liczbe, ktora zostala podana
    return 0;
   
}
P-150806
« 1 »
  Strona 1 z 1