Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C++.Warunki nie działają jak powinny/znikają litery w string/dziwne znaczki.

S0L1D3R 06 Lis 2017 09:16 282 1
  • #1 06 Lis 2017 09:16
    S0L1D3R
    Poziom 5  

    Cześć!
    Czy ktoś może mi wytłumaczyć dlaczego to tak działa?

    Code:
    #include <cstdio>
    
    #include <iostream>

    int main() {
    int a;
    int ile = 2;

    do {
    std::cin >> a;
    if(std::cin.fail() == 1) {
    std::cout << "Zle: " + a;
    }
    else {
    std::cout << "Dobrze: " + a;
    ile--;
    }
    } while(ile > 0);
    }


    Po wprowadzeniu jakiejkolwiek liczby dzieje się to:
    C++.Warunki nie działają jak powinny/znikają litery w string/dziwne znaczki.


    A po wprowadzeniu jakiegokolwiek znaku dzieje się to:
    C++.Warunki nie działają jak powinny/znikają litery w string/dziwne znaczki.

    0 1
  • #2 06 Lis 2017 10:33
    mi14chal
    Poziom 27  

    Kod: c
    Zaloguj się, aby zobaczyć kod

    To nie jest dobra konstrukcja, zawsze się używa <<
    Kod: c
    Zaloguj się, aby zobaczyć kod

    W przypadku błędu strumieni dobrze jest jeszcze użyć kodu który wyczyści strumień z błędu:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Czyli cały kod będzie tak wyglądać:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0