View Full Version : [C++] Ho un paio di domandine
Ciao, volevo chiedervi un paio di cosette.
Per prima cosa volevo sapere se è possibile far partire la finestra dos in cui si esegue il programma, ad una dimensione superiore ai classici 80X25.
Poi volevo sapere come è possibile fare in modo che lo stream di ingresso prenda l'input da tastiera senza doverlo confermare con invio. Ad esempio se nel mio programma volessi premere ESC e far eseguire una funzione come dovrei fare?
Grazie a tutti. :)
Ciao :)
Ziosilvio
05-05-2005, 14:31
volevo sapere come è possibile fare in modo che lo stream di ingresso prenda l'input da tastiera senza doverlo confermare con invio.
Non è un'operazione portabile, quindi la libreria standard non può aiutarti.
Dicci su che sistema lavori (architettura e sistema operativo) e quale compilatore usi.
Fenomeno85
05-05-2005, 15:28
se vuoi solo caratteri e numeri basta getchar / getch
~§~ Sempre E Solo Lei ~§~
se vuoi solo caratteri e numeri basta getchar / getch
Non sono per niente la stessa cosa...
getchar è una funzioen della libreria standard e necessità dell'invio...getch non è della libreria standard (quindi bisogna tenerlo ben presente e quando possibile sarebbe meglio non utilizzarla) e non vuol l'invio...
Grazie delle risposte. :)
Dunque, lavoro su architettura x86 e OS WinXP. Il compilatore è il gcc 3.4.2.
Ho provato le funzioni suggeritemi da Fenomeno85 e in effetti la _getchar() vuole l'invio.
Ho risolto con la _getch() includendo la libreria conio.h
Questa funzione devo usarla in un progetto per l'uni e se mi dite che non è standard devo chiedere al prof. se posso usarla.
Nel caso non potessi usarla c'è un altro modo per ottenere lo stesso risultato?
Poi per l'altra domanda che vi avevo fatto...
C'è un modo per far partire la finestra dos in cui si esegue il programma, ad una dimensione superiore ai classici 80X25?
Ciao :)
Riguardo alle dimensioni della finestra...non ne ho idea...
Per l'input ci sono altri modi, ma tramite le API di Windows e quindi ancora fuori standard...
Togli pure l'underscore davanti al nome delle funzioni...
Grazie delle risposte. :)
Dunque, lavoro su architettura x86 e OS WinXP. Il compilatore è il gcc 3.4.2.
Ho provato le funzioni suggeritemi da Fenomeno85 e in effetti la _getchar() vuole l'invio.
Ho risolto con la _getch() includendo la libreria conio.h
Questa funzione devo usarla in un progetto per l'uni e se mi dite che non è standard devo chiedere al prof. se posso usarla.
In ogni caso devi usare funzioni non standard, perche' come ti e' gia' stato detto, la libreria standard non gestisce operazioni di terminale (che dipendono dall'implementazione). Io purtroppo lavoro in ambiente Linux, quindi per Windows non so cosa dirti. In ogni caso per associare la pressione di un tasto ad un'operazione devi settare il terminale in modalita' "char buffered". Cerca questo termine da qualche parte per Windows. Dovrebbero eserci delle funzioni Microsoft per tale modalita'. Essere in modalita' char buffered vuol dire proprio che il sistema legge i caratteri uno per uno senza attedere la pressione dell'invio. In genere e' una modalita' di terminale, non proprio una funzione. Se sei piu' preciso su quale GCC usi (MingW o Cygwin) posso essere piu' dettagliato a riguardo.
C'è un modo per far partire la finestra dos in cui si esegue il programma, ad una dimensione superiore ai classici 80X25?
Ciao :)
Questo non dipende dal tuo programma comunque. Una volta creato il binario, clicca con il tasto destro su di esso e scegli proprieta'. Dovresti essere in grado di settare le proprieta' della finestra "DOS", ma e' un settaggio locale alla tua macchina e in nessun modo controllabile dal tuo programma.
Ok credo di aver capito. :)
Se il prof. mi dice che posso usare la getch() (@ Cionci: avevo visto sull'msdn che la funzione veniva chiamata con l'underscore e pensavo che senza non funzionasse. Grazie per l'info :) ) va bene, altrimenti farò un classico cin con l'invio.
Ad ogni modo il compilatore è il MingW.
Per il fatto della finestra sapevo già di poterne modificare la dimensione una volta avviato il programma, ma se potevo farla partire già ridimensionata sarebbe stato meglio. Comunque non è un problema. :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.