PDA

View Full Version : [C] getchar()


Mezzelfo
30-09-2004, 18:44
Per inserire in un programma il classico "premi un tasto per continuare" si usa getchar giusto?
Perchè il computer fa come se getchar non ci fosse e va avanti senza aspettare l'input?

Ho notato che se però ne inserisco due, uno dopo l'altro, funziona.

WHY!? O_o :muro:

VegetaSSJ5
30-09-2004, 19:52
per farti dare la scritta "premi un tasto per continuare" devi dare (sotto windows)

system("pause");

Mezzelfo
30-09-2004, 21:22
e sotto Linux?

ilsensine
30-09-2004, 22:23
E' una FAQ ricorrente. stdin è line buffered di default.
Link veloce a una possibile soluzione:
http://cboard.cprogramming.com/archive/index.php/t-27714

Ziosilvio
01-10-2004, 00:16
Originariamente inviato da ilsensine
E' una FAQ ricorrente. stdin è line buffered di default.
Link veloce a una possibile soluzione:
http://cboard.cprogramming.com/archive/index.php/t-27714
Bello, non lo sapevo!
Io finora ho sempre usato la "tecnica puzzona":
while (getchar() != '\n')
;
però il msg deve essere "Premi Invio per continuare..." ;)

VegetaSSJ5
08-10-2004, 00:48
Originariamente inviato da ilsensine
E' una FAQ ricorrente. stdin è line buffered di default.
Link veloce a una possibile soluzione:
http://cboard.cprogramming.com/archive/index.php/t-27714
non viene compilata con dev-c++ (ho provato solo con questo)sotto windows...:( questo c@zzo di getchar sta facendo impazzire anche me...

beppegrillo
08-10-2004, 07:13
getche() presente nella lib conio non vi piace?:O

ilsensine
08-10-2004, 10:42
Originariamente inviato da VegetaSSJ5
non viene compilata con dev-c++ (ho provato solo con questo)sotto windows...:( questo c@zzo di getchar sta facendo impazzire anche me...
Fammi indovinare, ti manca termios.h...è standard unix, non è presente sotto windows. Forse è stata implementata in Cygwin.

VegetaSSJ5
08-10-2004, 12:26
x beppegrillo:
conio.h è implementata di solito in windows ma non in unix...

x ilsensine:
termios.h è implementata di solito in *nix ma non in windows...


non c'è una soluzione standard al problema??

ilsensine
08-10-2004, 12:31
Originariamente inviato da VegetaSSJ5
x ilsensine:
termios.h è implementata di solito in *nix ma non in windows...

Appunto suggerivo di dare una occhiata a Cygwin. Può darsi che la hanno implementata in qualche maniera.


non c'è una soluzione standard al problema??
No in quanto non c'è una funzione standard C prevista per questa cosa.