ďťż

Ładny brzuch

Tak jak w temacie.
Szukając w google natrafiłem na f-cje peek(), która zwraca kod pierwszego znaku w strumieniu, nie pobierając go. Można wtedy bezpiecznie sprawdzić, czy znak to cyfra, myślnik ( liczba ujemna ) czy też litera.
Ale to by było za łatwe. :P
char znak; znak = cin.peek();
Ja chyba źle rozumiem działanie peek, ponieważ w tym momencie program kończy działanie nic nie wczytując, ani nie wyświetlając wyników.
Zupełnie jakby te linijki brzmiały:
getch();
return 0;

Chce osiągnąć taki efekt, że użytkownik wpisuje np -55, peek() zwraca myślnik do zmiennej znak, a później sprawdzam zawartość zmiennej znak i podejmuje odpowiednie działania.
Ktoś wie jak dokładnie działa ta funkcja peek ??



Masz tutaj przykład (z Symfonii):#include <iostream> #include <conio.h> int main() { char string[20]; float liczba; int temp; temp = std::cin.peek(); if(isdigit(temp)) { std::cin >> liczba; std::cout << "liczba: " << liczba; } else { std::cin >> string; std::cout << "napis: " << string; } getch(); return 0; }

Wielkie dzięki, rzeczywiście ten sposób działa, aczkolwiek znalazłem też funkcje putback(), za pomocą której też można to zrobić
peek i putback naprawde są dziwnymi funkcjami :huh: (przynajmniej dla mnie :D )

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •