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

Zadanie domowe z poziomu 1 i lekcji 9.

Ostatnio zmodyfikowano 2012-03-11 19:35
Autor Wiadomość
Sebeszyn
Temat założony przez niniejszego użytkownika
Zadanie domowe z poziomu 1 i lekcji 9.
» 2012-03-11 13:28:34
Co jest nie tak.?
Jak czegoś brakuje to napiszcie czego..


C/C++
#include <iostream>
int main()
{
   
    float a, b, c;
   
   
    std::cout << "Podaj liczbe rzeczywista: \n";
    std::cin >> a;
    std::cin.sync();
   
    std::cout << "Podaj liczbe rzeczywista: \n";
    std::cin >> b;
    std::cin.sync();
   
    std::cout << "Podaj liczbe rzeczywista: \n";
    std::cin >> c;
    std::cin.sync();
   
    std::cout << "Pierwsza liczba to: " << a << "." << " Wczytalo? " << std::cin.good() << "." << std::endl;
    std::cout << "Druga liczba to: " << b << "." << " Wczytalo? " << std::cin.good() << "." << std::endl;
    std::cout << "Trzecia liczab to: " << c << "." << " Wczytano? " << std::cin.good() << "." << std::endl;
    return 0;
}
P-52419
jankowalski25
» 2012-03-11 14:53:13
Przed
std::cin.sync();
 wstaw
std::cin.clear();
P-52424
Fabjan94
» 2012-03-11 19:35:48
Niech zgadnę, program który stworzyłeś zawsze wypisuje wartość niezgodną i nie pokazuje wyniku czy wczytano?

Według mnie powinieneś założyć cztery zmienne typu float jedną po to żeby wczytywać a trzy pozostałe żeby zapamiętać wczytania oraz trzy zmienne typu bool by sprawdzić czy udało się wczytać.

Przykład dla jednej liczy:

C/C++
#include <iostream>

int main()
{
    float a, liczba1;
    bool wczytanie1;
   
    std::cout << "Podaj 1 liczbe: ";
    std::cin >> a;
    liczba1 = a;
    wczytanie1 = std::cin.good();
    std::cin.clear();
    std::cin.sync();
   
    std::cout << "Pierwsza liczba: " << liczba1 << "Wczytano?: " << wszytanie1 << std::endl;
   
    return 0;
}

Czemu tak? A to temu że jak wczytasz liczbę a potem wyczyścisz strumień wejścia to przy wypisywaniu liczby on jest mimo wszystko pusty, wiec wypisze złą wartość i nie da nam odpowiedzi czy udało sie wczytać bo jest przecież pusty? Proste? Myślę, że tak. 
Dla pozostałych trzech już powinieneś się domyślić co zrobić. Radzę jeszcze powtórzyć sobie wcześniejsze lekcję, bo pośpiech nic nie pomoże.
Pozdrawiam i w razie problemów pisać na gg:260874:)
P-52440
« 1 »
  Strona 1 z 1