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

Zadanie domowe. Rozdział 9

Ostatnio zmodyfikowano 2012-07-03 22:46
Autor Wiadomość
xevuel
» 2012-05-22 16:40:54
Nie, nie chce mi się. Ale że to jest 5 linijek, to napiszę.

C/C++
std::cout << "Liczba pierwsza to: ";
std::cin >> a;
bool czy_wczytano_a = std::cin.good();
std::cin.clear();
std::cin.sync();
P-57166
Diablo
Temat założony przez niniejszego użytkownika
» 2012-05-22 17:02:18
Czyli coś takiego?


C/C++
#include <iostream>

int main()
{
    float liczba1;
    float liczba2;
    float liczba3;
    bool a;
    bool b;
    bool c;
   
    std::cout << "Liczba pierwsza to: ";
    std::cin >> a;
    bool czy_wczytano_a = std::cin.good();
    std::cin.clear();
    std::cin.sync();
   
    std::cout << "Liczba druga to: ";
    std::cin >> b;
    bool czy_wczytano_b = std::cin.good();
    std::cin.clear();
    std::cin.sync();
   
    std::cout << "Liczba trzecia to: ";
    std::cin >> c;
    bool czy_wczytano_c = std::cin.good();
    std::cin.clear();
    std::cin.sync();
   
    std::cout << "Informacje:" << endl;
    std::cout << "Liczba pierwsza to: " << liczba1;
    std::cout << "  Wczytano? " << a << endl;
    std::cout << "Liczba druga to: " << liczba2;
    std::cout << "  Wczytano? " << b << endl;
    std::cout << "Liczba trzecia to: " << liczba3;
    std::cout << "  Wczytano? " << c << endl;
   
    return 0;
}
P-57167
xevuel
» 2012-05-22 19:20:34
To czy_wczytano_a to była tylko przykładowa nazwa. Zastąp to zmienną "a", czyli coś takiego:
C/C++
a = std::cin.good();
//...
cout << "Wczytano? " << a;

I wczytuj do zmiennej float, nie do bool :)

Naprawdę, przeczytaj ten rozdział jeszcze kilka razy. Ze zrozumieniem!
P-57180
tarnos
nierozumiem !
» 2012-06-15 00:52:42
Kod ukradłem po wyżej i chciałbym żeby ktoś wytłumaczył dokładne mi skąd bool wie że cin>>a tyczy się jego !! nie mogę tego pojąć i zatrzymałem się na tym. Chciałem się jeszcze dowiedzieć czy można ominąć parę rozdziałów bo chciałem jeszcze ogarnąć Funkcje klasy i inne bo myślałem że dojdę do nich w tydzień a tu lipa straszna a mam nie długo zaliczenie jutro zaliczenie ok 18 hehe i coś czuję że nie zaliczę a chce nockę zarwać i do jutra się jeszcze uczyć ok 16 skończyć czyli mam niecałe 16h żeby ogarnąć (Tworzenie typów złożonych –struktury, unie, tablice struktur, wyliczenia,pzetwarzanie strumieniowe na plkach tek. i bin. ,WSKAŹ I REF. definiowanie, zastosowanie wskaźników wobec tablic, w argumentach funkcji, arytmetyka wskaźników,Dynamiczny przydział pamięci, operatory new i delete, dynamiczna alokacja tablicy,Klasy - typy definiowane przez użytkownika, składniki klasy, klasa a obiekt, dane składowe, funkcje składowe, odwoływanie się do publicznych danych składowych, polimorfizm, dziedziczenie. Co myślicie, hehe ?
 )
#include <iostream>

int main()
{
    float liczba1;
    float liczba2;
    float liczba3;
    bool a;
    bool b;
    bool c;
  
    std::cout << "Liczba pierwsza to: ";
    std::cin >> a;
    bool czy_wczytano_a = std::cin.good();
    std::cin.clear();
    std::cin.sync();
  
    std::cout << "Liczba druga to: ";
    std::cin >> b;
    bool czy_wczytano_b = std::cin.good();
    std::cin.clear();
    std::cin.sync();
  
    std::cout << "Liczba trzecia to: ";
    std::cin >> c;
    bool czy_wczytano_c = std::cin.good();
    std::cin.clear();
    std::cin.sync();
  
    std::cout << "Informacje:" << endl;
    std::cout << "Liczba pierwsza to: " << liczba1;
    std::cout << "  Wczytano? " << a << endl;
    std::cout << "Liczba druga to: " << liczba2;
    std::cout << "  Wczytano? " << b << endl;
    std::cout << "Liczba trzecia to: " << liczba3;
    std::cout << "  Wczytano? " << c << endl;
  
    return 0;
}
P-58520
xevuel
» 2012-06-15 06:57:24
Nie wpychaj się komuś do tematu. Załóż własny.

Kod ukradłem po wyżej i chciałbym żeby ktoś wytłumaczył dokładne mi skąd bool wie że cin>>a tyczy się jego !!
Chodzi Ci o to:
C/C++
std::cin >> a;
bool czy_wczytano_a = std::cin.good();
? Otóż wczytanie za pomocą cin'a za każdym razem ustawia swoistą flagę błędu, oznaczającą, czy wczytywanie się powiodło, czy nie. Tak więc do tej zmiennej czy_wczytano_a przypisuje się wartość oznaczającą, czy wczytanie przed chwilą się powiodło, czy nie.

Uwaga! Wpisanie
bool czy_wczytano_a = std::cin.good();
 po kodzie
C/C++
std::cin.clear();
std::cin.sync();
nie zadziała prawidłowo, bo te funkcje czyszczą flagi błędów.

C/C++
std::cout << "  Wczytano? " << a << endl;
Nie. Nie a, ale czy_wczytano_a.

Dlaczego wczytujesz do zmiennej typu bool, a wypisujesz zmienną typu float, której w ogóle nie wykorzystujesz? Zamień w kodzie zmienną a na liczba1 itd.

Jeśli jeszcze funkcji nie ogarnąłeś, to nawet nie myśl o klasach (ew. same podstawy, ale to już jak będziesz wiedział czym są funkcje). Przede wszystkim powtórz:
  • pętle
  • funkcje
  • wczytywanie i wypisywanie danych
  • ew. operacje na plikach
P-58521
NRC44
odpowiedz
» 2012-07-03 22:46:28
Też miałem z tym problem ale w końcu urodziłem coś takiego:

#include <iostream>
int main()
{
    float liczba1;
    float liczba2;
    float liczba3;



    std::cout << "Podaj liczbe 1: ";
    std::cin >> liczba1;
    bool a = std::cin.good();
    std::cin.clear();
    std::cin.sync();

    std::cout << "Podaj liczbe 2: ";
    std::cin >> liczba2;
    bool b = std::cin.good();
    std::cin.clear();
    std::cin.sync();

    std::cout << "Podaj liczbe 3: ";
    std::cin >> liczba3;
    bool c = std::cin.good();
    std::cin.clear();
    std::cin.sync();

    std::cout << "Liczba 1 = " << liczba1 << "wczytano = " << a << std::endl;
    std::cout << "Liczba 2 = " << liczba2 << "wczytano = " << b << std::endl;
    std::cout << "Liczba 3 = " << liczba3 << "wczytano = " << c << std::endl;


    return 0;
}

Dane wyświetlają się na tej samej zasadzie jak na zdjęciu z zadania.
P-59497
1 « 2 »
Poprzednia strona Strona 2 z 2