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

'If' nie wczytuje instrukcji

Ostatnio zmodyfikowano 2013-01-30 11:47
Autor Wiadomość
Frish
Temat założony przez niniejszego użytkownika
'If' nie wczytuje instrukcji
» 2013-01-30 10:20:01
Witam

mam taki kod:
C/C++
#include <iostream>

int main()
{
    int a;
   
    std::cout << "podaj liczbe: ";
    std::cin >> a;
   
    bool aliczba = std::cin.good();
    bool Aliczba = std::cin.fail();
   
    std::cout << "Wlasciwie: " << aliczba << std::endl;
    std::cout << "Blednie: " << Aliczba << std::endl;
   
    if( Aliczba == 1 )
    {
        int b;
        std::cout << "Niewlasciwie podales!" << std::endl;
        std::cout << "Podaj poprawna: ";
        std::cin >> b;
    }
    return 0;
}

Czy to jest poprawnie napisane, ponieważ nie wczytuje mi instrukcji std::cin >>b;


P.S. Prosze też podajcie mi kod jaki mam tu wpisaywać żeby w postach umieszczać kod programów w ramkach jak Wy to robicie, ta ramka z nagłowkiem C++.
P-75359
ShadowkhaN
» 2013-01-30 10:26:40
P-75360
crash
» 2013-01-30 10:31:39
Zastanów się, czy nie wczytuje poprawnie cin >> b, czy może po prostu tego nie wyświetla :) Albo czy nie wczytuje i nie wyświetla. Kod napisałeś tak, że tego nie sprawdzasz po prostu więc z punktu widzenia programu tego po prostu nie wiesz
P-75361
Frish
Temat założony przez niniejszego użytkownika
» 2013-01-30 11:05:34
Ale chciałem żeby ta instrukcja po sprawdzeniu czy wartość została dobrze wpisana, pozwolila na wpisanie poprawnej wartości jeżeli wcześniejsza była błędna... i wlaśnie if( Aliczba==1 )  ma decydować o wczytaniu również cin>>b. Co mam w tym zmienić żeby mój zamysł był wykonany przez program?
P-75362
ShadowkhaN
» 2013-01-30 11:19:24
P-75363
ligras
» 2013-01-30 11:25:36
a mi się wydaje, że wystarczy jak wyczyścisz flagi błędu strumienia wejściowego oraz bufor strumienia wejściowego przed każdym wczytywaniem cin.
P-75365
Frish
Temat założony przez niniejszego użytkownika
» 2013-01-30 11:34:48
Czyli nie da się zrobić tego w sposób który ja chciałem...?
P-75366
ligras
» 2013-01-30 11:37:29
Może ja się nie znam, bo też się dopiero uczę, ale, jak wpiszesz dwie dodatkowe linijki do Twojego kodu:
C/C++
#include <iostream>

int main()
{
    int a;
   
    std::cout << "podaj liczbe: ";
    std::cin >> a;
   
    bool aliczba = std::cin.good();
    bool Aliczba = std::cin.fail();
   
    std::cout << "Wlasciwie: " << aliczba << std::endl;
    std::cout << "Blednie: " << Aliczba << std::endl;
   
    if( Aliczba == 1 )
    {
        int b;
        std::cout << "Niewlasciwie podales!" << std::endl;
        std::cout << "Podaj poprawna: ";
        std::cin.clear(); // czyści flagi błędu strumienia wejściowego
        std::cin.sync(); // czyści bufor strumienia wejściowego
        std::cin >> b;
    }
    return 0;
}
to moim zdaniem śmiga dobrze.
P-75367
« 1 » 2
  Strona 1 z 2 Następna strona