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

[C++] POZIOM 1, RODZIAŁ 9 - Zadanie domowe

Ostatnio zmodyfikowano 2016-12-08 09:33
Autor Wiadomość
Magic_Capybara
Temat założony przez niniejszego użytkownika
[C++] POZIOM 1, RODZIAŁ 9 - Zadanie domowe
» 2016-12-01 10:49:16
Witam,
Robiąc zadnie natrafiłem na następujący błąd - wszystko działa dobrze tak długo jak dane wejściowe są poprawne, a więc jest bezużyteczny bo jego zadaniem jest wyświetlenie informacji jeśli są niepoprawne. W przypadku wprowadzenia niepoprawnych danych (na przykład tekstu) program "przeskakuje" wprowadzenie następnych zmiennych :/

Kod źródłowy:
C/C++
#include <iostream>

using namespace std;
int main()
{
    float a, b, c;
    bool A, B, C;
    cin >> a;
    A = cin.good();
    cin.clear();
    cin >> b;
    B = cin.good();
    cin.clear();
    cin >> c;
    C = cin.good();
    cin.clear();
    cout << "Liczba pierwsza to: " << a << " Wczytano? " << A << "." << endl;
    cout << "Liczba druga to: " << b << " Wczytano? " << B << "." << endl;
    cout << "Liczba trzecia to: " << c << " Wczytano? " << C << "." << endl;
    return 0;
}

Tak więc jeśli wprowadzę same liczby, to wszystko działa, a w innym przypadku wyświetla to, co zostało do tej pory wprowadzone, a resztę pomija i wyświetla "0" w miejsce innych zmiennych. Próbowałem dodać
cin.sync
 po przypisaniu wartości dla każdej zmiennej bool i rzeczywiście jest lepiej, ale nadal nie działa tak jak bym chciał (w przyadku wpisania np. "123 asd" chciałbym aby zostało to zaklasyfikowane jako błędne, a przy zastosowaniu
cin.sync
 za warość przyjmuje "123" i traktuje jako poprawne :/

Ktoś coś?

P-154362
Anim
» 2016-12-01 11:56:35
Parę dni temu poruszałem podobny temat:

http://cpp0x.pl/forum/temat/?id=24029

Także miałem problemy z wprowadzaniem danych dłuższych niż 1-znakowe oraz z kontrolę tychże danych.
P-154364
karambaHZP
» 2016-12-01 12:07:57
Napisz funkcję, która będzie sprawdzać wg twoich kryteriów wprowadzane dane i zwracać dokładnie to czego oczekujesz.
Po prostu recznie filtruj zawartość bufora strumienia i recznie pozbywaj się tego co uważasz za błąd.
Przydatne funkcje znajdzesz w pliku cctype.
P-154365
Magic_Capybara
Temat założony przez niniejszego użytkownika
» 2016-12-08 09:33:50
Okej, dzięki wielkie wszystkim :D
Znalazłem mniej więcej to o co mi chodziło w temacie Anima.

Temat uważam za zamknięty.
P-154645
« 1 »
  Strona 1 z 1