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

Poziom 1 rozdział 9 Zadanie domowe

Ostatnio zmodyfikowano 2015-08-22 13:26
Autor Wiadomość
Feralnex
Temat założony przez niniejszego użytkownika
Poziom 1 rozdział 9 Zadanie domowe
» 2015-08-22 00:01:08
Witam,
Chciałbym aby napisany program wyświetlał błędy za pomocą komendy std::cin.good() (wartość 1 lub 0), lecz nie wiem gdzie leży błąd w moim kodzie (na strumieniu końcowym powinno pokazywać błąd przy wpisaniu np. litery).

C/C++
#include <iostream>
int main()
{
    int a;
    unsigned int b;
    float c;
    bool Wczytano = std::cin.good();
   
    std::cout << "Podaj liczbe pierwsza ";
    std::cin >> a;
    std::cin.clear();
    std::cin.sync();
    std::cout << "Podaj liczbe druga ";
    std::cin >> b;
    std::cin.clear();
    std::cin.sync();
    std::cout << "Podaj liczbe trzecia ";
    std::cin >> c;
    std::cin.clear();
    std::cin.sync();
   
    std::cout << "Liczba pierwsza to: " << a << " Wczytano? " << Wczytano << std::endl;
    std::cout << "Liczba druga to: " << b << " Wczytano? " << Wczytano << std::endl;
    std::cout << "Liczba trzecia to: " << c << " Wczytano? " << Wczytano << std::endl;
    return 0;
}
P-136679
Cansisti
» 2015-08-22 00:11:55
Kiedy przypisujesz wartość 'wczytano' jeszcze nic nie wczytałeś :) cin.good() musisz wywołać po każdym cin >> i dla każdej wczytywanej wartości stworzyć zmienną która zapamięta czy udało się wczytać.
P-136680
programista17
Przejrzystość Kodu
» 2015-08-22 09:56:09
Jak piszesz kod to używaj
using namespace std;
bo jak będziesz tak pisał std:: cout itd.
i będziesz chciał stworzyć jakiś duży program to się zarobisz na śmierć ;)
im więcej pisania tym łatwiej się pomylić :|
P-136685
Feralnex
Temat założony przez niniejszego użytkownika
» 2015-08-22 11:51:09
Niestety jestem początkujący i wciąż nie wiem jak to zrobić ; / Próbowałem już wiele sposobów i zawsze podobny wynik...
P-136689
BadBullPL
» 2015-08-22 12:14:45
funkcja
cin.good()
 pobiera wartość na podstawie ostatniego wczytywanie danych czyli, że musisz utworzyć dla trzech wczytań trzy zmienne typu
bool
 i po wczytaniu a przed wyczyszczenie strumienia przypisać do nich wartość którą zwróci funkcja
cin.good()
P-136693
Cansisti
» 2015-08-22 13:21:20
C/C++
#include <iostream>

using namespace std; //to o czym pisał programista17
int main()
{
    int a;
    unsigned int b;
    float c;
    bool wczytA, wczytB, wczytC; //będziemy wczytywać 3 liczby więc dla każdej musimy mieć osobny bool
   
    cout << "Podaj liczbe pierwsza ";
    cin >> a;
    wczytA = cin.good(); //zapisujemy czy wczytano pierwszą liczbę
    cin.clear();
    cin.sync();
    cout << "Podaj liczbe druga ";
    cin >> b;
    wczytB = cin.good(); //zapisujemy czy wczytano drugą liczbę
    cin.clear();
    cin.sync();
    cout << "Podaj liczbe trzecia ";
    cin >> c;
    wczytC = cin.good(); //zapisujemy czy wczytano trzecią liczbę
    cin.clear();
    cin.sync();
   
    cout << "Liczba pierwsza to: " << a << " Wczytano? " << wczytA << endl;
    cout << "Liczba druga to: " << b << " Wczytano? " << wczytB << endl;
    cout << "Liczba trzecia to: " << c << " Wczytano? " << wczytC << endl;
    return 0;
}
P-136699
Feralnex
Temat założony przez niniejszego użytkownika
» 2015-08-22 13:26:03
Dziękuje!!! Teraz już rozumiem : D Dziękuje wszystkim za pomoc ^^
P-136700
« 1 »
  Strona 1 z 1