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

Problem z Zadaniem z Poradnika (lekcja 9)

Ostatnio zmodyfikowano 2012-04-22 11:38
Autor Wiadomość
FFF
Temat założony przez niniejszego użytkownika
Problem z Zadaniem z Poradnika (lekcja 9)
» 2012-04-22 10:44:40
Napisz program, który wczyta trzy liczby rzeczywiste, a na końcu programu je wszystkie wypisze. Zadbaj o to, by bufor strumienia wejściowego był za każdym razem czyszczony. Wynik końcowy powinien również zawierać informacje czy wczytanie danej liczby się powiodło.

Na poczatku zrobilem to zadanie bez czyszczenia strumienia i informacje czy wczytywanie sie powiodlo umieszczalem zaraz po miejscu na wczytanie tej liczby. Pozniej przeczytalem ze informacje o wczytaniu maja byc umieszczone na koncu programu i trzeba uzyc zmiennych typu bool. Po seri błędów i kombinowania moj kod wygląda teraz tak:

C/C++
#include <iostream>
#include <cstdio>
int main()
{
    int a;
    int b;
    int c;
    bool A;
    bool B;
    bool C;
   
    std::cout << "wprowadz 1 liczbe  " << std::endl;
    std::cin >> a;
    A = std::cin.good();
    std::cin.good();
    std::cin.fail();
    std::cin.clear();
    std::cin.sync();
   
    std::cout << "wprowadz 2 liczbe  " << std::endl;
    std::cin >> b;
    B = std::cin.good();
    std::cin.good();
    std::cin.clear();
    std::cin.sync();
   
    std::cout << "wporwadz 3 liczbe  " << std::endl;
    std::cin >> c;
    C = std::cin.good();
    std::cin.good();
    std::cin.clear();
    std::cin.sync();
   
   
    std::cout << "1 licbza tooo = " << a << std::endl;
    std::cout << "wczytano ? " << std::cout << "A" << std::endl;
   
    std::cout << "2 liczba tooo = " << b << std::endl;
    std::cout << "wczytano ? " << std::cout << "B" << std::endl;
   
    std::cout << "3 liczba tooo = " << c << std::endl;
    std::cout << "wczytano ? " << std::cout << "C" << std::endl;
   
   
}

I chodzi o to ze za kazdym razem wychodzi "czy wczytano ? 0x4740c4A lub B lub C



edit.
Przepraszam ze napisalem w tym dziale ale nie zauwazylem ze do poradnika jest specjalny dzial







P-54983
SeaMonster131
» 2012-04-22 11:11:53
C/C++
std::cin.good();
std::cin.fail();
Co według Ciebie to robi, skoro masz już np
A = std::cin.good();
 ?


C/C++
std::cout << "wczytano ? " << std::cout << "A" << std::endl;
Jeżeli chcesz wypisać jakąś zmienną robisz o tak
std::cout << zmienna;
 - (bez "").
P-54984
FFF
Temat założony przez niniejszego użytkownika
» 2012-04-22 11:17:13
Na poczatku pisalem samo A = std::cin.good()  ale jak mi powyskakiwaly te liczby to juz zaczalem zmieniac wiec teraz moj kod wyglada tak:

C/C++
#include <iostream>
#include <cstdio>
int main()
{
    int a;
    int b;
    int c;
    bool B;
    bool A;
    bool C;
   
   
   
    std::cout << "wprowadz 1 liczbe  " << std::endl;
    std::cin.clear(); // tutaj w sumie chyba jest niepotrzebne
    std::cin.sync(); // to samo co wyzej
    std::cin >> a;;
    A = std::cin.good();
   
    std::cout << "wprowadz 2 liczbe  " << std::endl;
    std::cin.clear();
    std::cin.sync();
    std::cin >> b;
    B = std::cin.good();
   
   
    std::cout << "wporwadz 3 liczbe  " << std::endl;
    std::cin.clear();
    std::cin.sync();
    std::cin >> c;
    C = std::cin.good();
   
   
    std::cout << "1 licbza tooo = " << a << std::endl;
    std::cout << "wczytano ? " << std::cout << A << std::endl;
   
   
    std::cout << "2 liczba tooo = " << b << std::endl;
    std::cout << "wczytano ? " << std::cout << B << std::endl;
   
    std::cout << "3 liczba tooo = " << c << std::endl;
    std::cout << "wczytano ? " << std::cout << C << std::endl;
}


Ale nadal nie pozbylem sie tego błedu (przy std::cout << A  wyhchodzza mi dziwne liczby)

edit. poprawilem tamten fragment w tym kodzie
P-54985
SeaMonster131
» 2012-04-22 11:22:11
C/C++
std::cout << "wprowadz 1 liczbe  " << std::endl;
std::cin.sync();
std::cin >> a;;
C = std::cin.good();
zwróc uwagę na ostatnią linijkę w podanym przeze mnie fragmencie Twojego kodu.
P-54986
FFF
Temat założony przez niniejszego użytkownika
» 2012-04-22 11:26:15
No tak nie wiem czemu tak napisalem ale poprawilem juz to i dalej to samo :/
Zmienilem poprawiony fragment w poprzednim poscie
P-54987
SeaMonster131
» 2012-04-22 11:34:50
Tutaj jest błąd, porównaj sobie te 2 linijki:
C/C++
std::cout << "wczytano ? " << std::cout << A << std::endl;
z tą:
C/C++
std::cout << "wczytano ? " << A << std::endl;
P-54989
FFF
Temat założony przez niniejszego użytkownika
» 2012-04-22 11:38:41
Dzieki teraz juz wszystko jest ok :)
P-54990
« 1 »
  Strona 1 z 1