» »

c++ getch problem

c++ getch problem

iggy ::

Lep pozdrav
Napisal sem preprost program, ki bere znake in jih izpisuje na zaslon. Uporabil sem funkcijo getch(), ki prebere znak in ne čaka na pritisk entra. No zdaj pa k problemu. Problem je ta, da mi izpiše črke, ki sem jih vtipkal z zeeeelooo veliko zakasnitvijo. Torej če pritiskam tipke mi bo po okoli 30 sekundah prikazalo use tipke, ki sem jih pritisnil v zadnjih 30 sek. V čem tiči problem?

koda:
 

char a;

int main(){
	while (1){
		a = getch();
		cout (( a ;
	}
	return 0;
}
Hey, you're fat!
  • spremenil: Vesoljc ()

napsy ::

Mogoče muraš flush-at stream.

dodaj:
fflush(stdout);

pred koncem while zanke
"If you die, you die. But when you live you live. There is no time to waste."

Gundolf ::

uporabi
cout.flush();
tako kot ti je napsy svetoval (njegova rešitev je C-jevska, mešanje C in C++ v IO operacijah je pa velik no-no). Tako da tudi tvoj getch() bi se dalo spremenit v recimo cin.get().

Zgodovina sprememb…

  • spremenil: Gundolf ()

iggy ::

Gundolf najlepša hvala, deluje! Samo zanima me zakaj potrebujemo ta cout.flush();
Hey, you're fat!

napsy ::

Preden se stvari izpišejo na zaslon se shranijo v buffer, ki se pa ob priložnosti izprazni. Tvoja zanka je pa prehitra za samodejno spraznitev bufferja, zato ga moraš ročno.
"If you die, you die. But when you live you live. There is no time to waste."


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[c++] cin >> problem

Oddelek: Programiranje
241285 (955) Tutankhamun
»

[c++] Kako ugotoviti katera tipka je bila pritisnjena

Oddelek: Programiranje
141330 (1102) 64202
»

čitanje črk

Oddelek: Programiranje
71361 (1230) BigWhale
»

c++ datoteke

Oddelek: Programiranje
463488 (2977) Vesoljc
»

C++ kot kaj shraniti program?

Oddelek: Programiranje
261021 (854) rasta

Več podobnih tem