[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [CPROG] Flushing af stdin



Ok, måske har jeg lavet lort i den og spildt jeres tid. Her kommer en
forklaring:

Jeg vil gøre noget ala følgende...

START
	* Læs første tegn fra stdin.
	* Tøm stdin, så der ikke er nogen tegn tilbage.
	* Behandl det læste tegn.
	* Vent _lidt_ tid og gå til START

På den måde vil det tegn, der behandles være indtastet i det sidste tidsrum.
På den måde risikerer man ikke, at programmet reagerer på noget personen
gjorde for "lang" tid siden (dvs. indtastede måske tre tegn i første
tidsrum).

Det var der mange, der ikke forstod, men folk hjalp alligevel så godt de
kunne.

Så begyndte vi at diskutere. Og nu kommer det frygtelige. Jeg har baseret
programmet på ncurses. Jeg troede dog, at ncurses' getch() og getchar()
svarede til hinanden. midlertid returnerer getch() ERR vorimod getchar
giver 0, når der ikke er noget på stdin.
Og så gik der lidt kage i den (for mit vedkommende i hvert fald)

Om ikke andet, kunne man så ikke tømme (jeg tør ikke sige flushe :-) stdin
som nedenunder via std. getchar()?

---

int ch;

ch = getchar()
if (char != 0)
	while (getchar() != 0);

/* stdin er nu tom! */

---

Var det til at forstå?
- Og næste gang skal jeg nok huske at læse lektier.

-- 
	Peter Seidler


 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 20:08 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *