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

Problem z funkcją warunkową i strumieniem

Ostatnio zmodyfikowano 2010-07-26 15:53
Autor Wiadomość
Pawel92
Temat założony przez niniejszego użytkownika
Problem z funkcją warunkową i strumieniem
» 2010-07-26 14:53:24
Być moze dla niektorych problem moze wydać się banalny, jednak nie rozumiem pewnych dwu rzeczy, które dotyczą zadania 11.1.2 w kursie c++.
Pierwszą rzeczą jest to, dlaczego kompilator przy pobieraniu danych do zmiennej, wymaga wielkości pobieranych danych rownej przynajmniej 2:

cin.get(znak,2);

Jezeli wpisuje 1, program nie wczytuje zadnego znaku.

Drugą sprawą jest samo porównanie. Próbowałem różnymi metodami sprawdzić warunek i za każdym razem efekt jest ten sam. Problem polega na tym, że program zawiera fragment kodu podany poniżej. Przy wpisaniu Z w programie, pojawia się napis NIE. Mógłby mi ktoś wyjaśnić jak to działa, bo dla mnie to nieco nielogiczne ;p

if (znak == "Z")
cout << "TAK";
else
cout << "NIE";
P-20165
Dybusek
» 2010-07-26 15:09:16
Teksty porównuje się za pomocą specjalnych funkcji.
P-20167
Pawel92
Temat założony przez niniejszego użytkownika
» 2010-07-26 15:15:59
Ano chyba że tak.

Zauważyłem, ze da sie to zrobic, porownujac pierwsza komorke tablicy do odpowiednika z kodu ASCII, ale pozostaje jeszcze pierwszy problem. Ma ktoś na to wyjaśnienie?
P-20168
programator
» 2010-07-26 15:53:47
Funkcja, której użyłeś:

istream::get(char*, streamsize, char);
wymaga chociaż jednego znaku, bo musi być jakiś ogranicznik(ostatni argument).
Funkcja ta, czyta dotąd, aż napotka ogranicznik i zostawia go w strumieniu.
Chyba, że ilość wczytanych ze strumienia znaków przekroczy wartość daną w 2 argumencie:)

P.S. Do czytania ze strumienia, ja zawsze używam instrukcji:

getline(cin, string);
tak jak przy plikach:)

A co do drugiego problemu, to jak najbardziej można tak porównywać....

char znak;
cin>>znak;
if(znak == 'Z') cout<<"TAK";
else cout<<"NIE";
Jeżeli wpiszesz "Z", to będzie TAK.
Ale jeżeli wpiszesz "z", będzie nie:)
P-20171
« 1 »
  Strona 1 z 1