PDA

View Full Version : [c++] utilizzo della shell


arghideutis
03-10-2006, 16:52
ciao,
avete presente, ad esempio, l'editor di testo "vi"? quando si avvia tale programma in una shell sotto linux o mac il programma si "impadronisce" della finestra e ti fa uscire solo se digiti determinati caratteri (:q) e quando si esce la console torna come prima senza mostrare il testo che si è scritto .......ma come si fa questo col c++???? so che deve essere una cosa semplice che si può fare anche con altri linguaggi.....ma non ne vengo fuori!

grazie

andbin
03-10-2006, 17:32
avete presente, ad esempio, l'editor di testo "vi"? quando si avvia tale programma in una shell sotto linux o mac il programma si "impadronisce" della finestra e ti fa uscire solo se digiti determinati caratteri (:q) e quando si esce la console torna come prima senza mostrare il testo che si è scritto .......ma come si fa questo col c++???? so che deve essere una cosa semplice che si può fare anche con altri linguaggi.....ma non ne vengo fuori!Sì, ho ben presente cosa fa 'vi' su Linux.

La questione è molto semplice: lavorare con la console a quel livello cioè gestione completa del cursore, del colore, della posizione dei caratteri, dell'input non bufferizzato, ecc... non è possibile utilizzando funzioni "standard" del C o C++.
Bisogna utilizzare delle librerie apposite. Su Linux è possibile utilizzare la libreria 'ncurses'. Su Windows è possibile utilizzare le funzioni specifiche per la console che fanno parte delle API Win32.

Se hai bisogno di qualche info in più o di un esempio, chiedi pure. ;)

arghideutis
04-10-2006, 10:38
non è che avresti qualche sito da indicarmi dove se ne parla?

andbin
04-10-2006, 11:09
non è che avresti qualche sito da indicarmi dove se ne parla?Per le API Win32 dedicate alla console, il sito di riferimento non può che essere MSDN! Vedi <qui> (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/character_mode_applications.asp).

Per la libreria curses/ncurses, guarda a partire da qui:
http://en.wikipedia.org/wiki/Curses_%28programming_library%29
http://en.wikipedia.org/wiki/Ncurses