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

Problem z getchar()

Ostatnio zmodyfikowano 2009-11-12 19:39
Autor Wiadomość
Paffciek
Temat założony przez niniejszego użytkownika
Problem z getchar()
» 2009-11-09 20:09:03
Witam. Program niby banalnie prosty, a jednak mam jakiś problem. Proszę o odpowiedź, czemu się on wyłącza zamiast czekać na naciśnięcie ENTERa ?

C/C++
#include<iostream>

using namespace std;

int main()
{
    int a;
   
    cout << "Wartosc bezwzgledna v1.0" << endl << endl << endl;
   
    cout << "Podaj liczbe:  ";
    cin >> a;
   
    if( a >= 0 )
    {
        cout << "|a| = " << a;
    } else
    {
        cout << "|a| = -" << a;
    }
   
    cout << endl << endl << "Zakoncz...[ENTER]";
   
    getchar();
}

Poza tym,gdy napiszę zamiast
getchar();
to
getchar();
getchar();

to działa :/
P-11451
malan
» 2009-11-09 20:52:12
Spróbuj po ' cin ' (wczytywaniu liczby) dać cin.sync();
P-11452
Paffciek
Temat założony przez niniejszego użytkownika
» 2009-11-09 20:56:47
dodałem plik <conio.h> i zrobiłem getch(); i narazie działa :) a do czrgo ten cin.sync(); ?
P-11453
malan
» 2009-11-09 21:07:08
Pozwolę sobie zacytować: "cin.sync() - czyści bufor strumienia", czyli można powiedzieć, że usuwa wszystkie znaki (wciśnięte klawisz) z bufora.
P-11454
Paffciek
Temat założony przez niniejszego użytkownika
» 2009-11-10 20:33:20
tzn, że coś jest "naciśnięte na zapas" i dlatego już getchar(); nie potrzebuje wciskania drugi raz?

//edit -> jak się tutaj koloruje skladnie(na forum) ?

//@by admin: wciśniesz edit na poprawionym poście i będziesz wiedział :P

//nie wpadłem na to :D
P-11476
Thud
» 2009-11-10 21:16:55
Jedno użycie getchara zapycha bufor. Czyść go.
A w ogóle polecam get.cin(), dobrze zintegruje się z get.sinc().
P-11483
Elaine
» 2009-11-11 16:31:37
getchar() nie zapycha bufora - to user, wciskając klawisze, zapycha bufor. Jeśli ten nie jest pusty, to getchar() będzie z niego czytać, więc wypada zrobić flush przed tym. Niestety, fflush(input stream) to undefined behavior, zostają iostreamsy, w których mamy metodę sync() /która jest niewielkim wraperrem na streambuf:: pubsync(), ale cicho, nie wszyscy muszą o tym wiedzieć/.
P-11510
Paffciek
Temat założony przez niniejszego użytkownika
» 2009-11-12 19:39:17
trochę zbyt skomplikowane :D
P-11527
« 1 »
  Strona 1 z 1