[C] funzione 'premi un tasto per continuare'


zenZero
 Share

Recommended Posts

  • Replies 25
  • Created
  • Last Reply

Top Posters In This Topic

Effettivamente vedo che il comando pause su Mac è diverso da quello che conosci tu... temo che si limiti a bloccare l'applicazione... :P allora forse è meglio che torniamo a getchar....

Che io sappia, però è di solo "buffer a linea", cioè il carattere viene letto solo dopo che l'utente è andato a capo, adesso cerco se ci sono altre possibilità

Link to comment
Share on other sites

niente getchar e ***** varie;)

printf("premi un tasto per continuare.");

scanf("%*c");

il gioco è fatto;)

io volevo appunto evitare lo scanf, in modo che non comparisse a schermo il carattere digitato. cmq, se non ci sono alternative, credo che opterò per questa soluzione...

@thom: grazie mille, io non saprei proprio da che parte cercare... ho googlato un bel po' ma non ho trovato niente...

un saluto a tutti!

Link to comment
Share on other sites

Facendo così e compilando "gcc -g SORGENTE.c -lcurses" si dovrebbe ottenere un po' quello che vuoi, usando una sorta di libreria aggiuntiva usata in Unix.

Il fatto è che il C ANSI non prevede una funzione che faccia quello che vuoi tu, perché usano tutte il buffer per riga, (semmai puoi chiedere "scrivi una lettera e vai a capo" o "vai a capo" per continuare

#include <curses.h>int main (int argc, char **argv){	WINDOW *wnd;	char tasto;		wnd = initscr(); // initializza finestra	cbreak(); // nessuna attesa di a capo	noecho(); // nessuna stampa del carattere digitato	tasto = getch();	/* Continua.... */	endwin();	return 0;}
Link to comment
Share on other sites

grazie thom, purtroppo non capisco molto dall'esempio che mi hai postato...

credo di aver ancora molto da imparare... alla fine mi accontenterò di un semplice scanf o utilizzo la funzione sleep per ritardare il processo di qualche secondo senza immettere nulla.

sono arrivato giusto ai puntatori nel manuale che sto studiando, ma devo ancora completare metà libro!

cmq ho copiato il sorgente, così quando capirò qualcosa in +, mi tornerà utile.

un saluto

Link to comment
Share on other sites

Facendo così e compilando "gcc -g SORGENTE.c -lcurses" si dovrebbe ottenere un po' quello che vuoi, usando una sorta di libreria aggiuntiva usata in Unix.

Il fatto è che il C ANSI non prevede una funzione che faccia quello che vuoi tu, perché usano tutte il buffer per riga, (semmai puoi chiedere "scrivi una lettera e vai a capo" o "vai a capo" per continuare

#include <curses.h>int main (int argc, char **argv){	WINDOW *wnd;	char tasto;		wnd = initscr(); // initializza finestra	cbreak(); // nessuna attesa di a capo	noecho(); // nessuna stampa del carattere digitato	tasto = getch();	/* Continua.... */	endwin();	return 0;}

A parte che questa cosa non la sapevo. Comunque mi sembra una soluzione un po brutta, ti devi ricordare che hai un puntatore alla tua finestra, che devi inizializzarla e terminarla. Ricorda molto winoz(bleah).

Ricordo che usando il terminale non serve system("Pause") in quanto una volta terminato il programma il terminale non si chiude come accade con la shell dos. Il system("pause") su winzoz lo usavo solo per eliminare il problema che quando un prog terminava, scompariva pure la shell.

Link to comment
Share on other sites

Ricordo che usando il terminale non serve system("Pause") in quanto una volta terminato il programma il terminale non si chiude come accade con la shell dos. Il system("pause") su winzoz lo usavo solo per eliminare il problema che quando un prog terminava, scompariva pure la shell.

a me in realtà il comando system 'pause' serve per fermare il programma DURANTE la sua esecuzione e non alla fine.

ho scritto il gioco del poker, e quando vengono sostituite le carte della mano avrei voluto inserire una pausa tra la mano del computer e quella del giocatore. giusto per non vedere scorrere tutto di seguito il programma...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share