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

Rozdział 16 Delikatnie rozszerzona praca domowa :)

Ostatnio zmodyfikowano 2017-02-19 21:40
Autor Wiadomość
shrvabl
Temat założony przez niniejszego użytkownika
» 2017-02-17 13:57:09
Wcześniej gdzieś coś czytałem i zrozumiałem, że cin przyjmuje wartość 1/true lub 0/false kiedy jest wprowadzone poprawnie lub błędnie. Dlatego chciałem przypisać tą wartość zmiennej i potem ją wykorzystać. I nie wiem, ale u mnie wszystko chodzi tak jak powinno, chyba że wyszło tak przypadkiem :D
P-157900
karambaHZP
» 2017-02-17 14:01:54
C/C++
bool oke;
// jakieś operacje na strumieniu wejsciowym
oke = std::cin;
Trochę rozwlekłe ale jak najbardziej poprawne.
Jeśli masz zamiar wykorzystać stan strumienia z tego miejsca w innym punkcie kodu to nie masz innego wyboru.
P-157901
shrvabl
Temat założony przez niniejszego użytkownika
» 2017-02-17 14:07:54
Czyli ta część:
C/C++
bool oke0;
do
{
    cout << "Chcesz losowac liczby od 0 do ...?" << endl;
    cin >> koncowa;
    oke0 = cin;
    if( cin == 0 )
    {
        cout << "Ktos tu pomijal lekcje w przedszkolu, \nskoro nie odroznia cyfr od innych \nznakow." << endl;
        cout << endl;
        cout << endl;
        cin.clear();
        cin.sync();
    }
} while( oke0 != 1 );

jest poprawna?
P-157902
carlosmay
» 2017-02-17 14:33:33
C/C++
oke0 = cin;
if( !oke0 )
Teraz ma to wiecej sensu. Nie musisz już drugi raz sprawdzać stanu strumienia jeśli masz tą informację zapisaną w zmiennej.
P-157903
michal11
» 2017-02-17 15:03:17
@Szymon2727

przypisanie cin do boola jest jak najbardziej prawidłowe ponieważ istream (którego cin jest instancją) ma operator bool. Więcej na ten temat: http://www.cplusplus.com​/reference/ios/ios​/operator_bool/
P-157905
Szymon2727
» 2017-02-17 16:36:35
Przecież od sprawdzania poprawności strumienia ma się std::cin.good() i całą resztę tego podobnych funkcji/metod.
P-157907
Monika90
» 2017-02-17 16:59:32
C/C++
bool b = std::cin;
b = std::cin;
Takie coś nie jest poprawne.

Ale takie coś już jest
C/C++
bool b { std::cin };
b = static_cast < bool >( std::cin );
b = !!std::cin;

I znaczy to samo co
C/C++
b = !std::cin.fail();

P-157908
Szymon2727
» 2017-02-17 19:35:37
C/C++
bool b = std::cin );
bool b { std::cin };

To nie jest to samo?
P-157912
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona