[C] Ncurses

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
gila75
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2739
Iscrizione: mercoledì 16 gennaio 2013, 17:28
Desktop: ubuntu-2d
Distribuzione: Ubuntu 12.04.2 LTS i686
Località: Airuno(Lecco)

[C] Ncurses

Messaggio da gila75 »

Ciao, a tutti, sto iniziando a studiare ncurses, ma prima di fare domande tecniche e chiedere aiuto,mi piacerebbe sapere il vostro parere.
A fronte di librerie grafiche come gtk, opengl, che sono immense e probabilmente richiedono mesi, se non anni di studio, ha senso
buttarsi su ncurses, che comunque è molto più primitiva? Anche se molto più semplice.
Tutto è utile, e sicuramente direte: dipende da cosa devi fare.
Ma la domanda è: non è diventata un po' obsoleta ncurses?
Grazie anticipatamente a tutti :)
ale4
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 761
Iscrizione: venerdì 10 agosto 2012, 17:53

Re: [C] Ncurses

Messaggio da ale4 »

Sono due cose completamente diverse, le librerie GTK o QT ti servono per creare applicazioni grafiche come quelle che usi normalmente con il mouse, le librerie ncurses servono per creare applicazioni testuali che girano in una console a riga di comando, sono utilizzate da programmi come vim, nano, mc, aptitude, menuconfig del kernel, ecc, servono per dare un interfaccia semi grafica alle applicazioni testuali, chiaramente non puoi pensarci di farci chissà cosa, vanno bene per le cose molto semplici, non puoi creare vere e proprie grafiche, resta sempre una console testuale

Se vuoi imparare ad utilizzare delle librerie grafiche vere e proprie io ti consiglierei di puntare su QT comunque, intanto sono multipiattaforma, sono disponibili anche per windows e osx (e volendo anche android e altri os mobile), e in questo facilitano molto la scrittura di codice multipiattaforma, perchè oltre alla gestione della grafica implementano anche la gestione del networking, dei thread, ecc, in maniera che tu non sia costretto ad usare librerie specifiche per la piattaforma e non ti debba preoccupare di essere su windows piuttosto che su linux, inoltre sono abbastanza semplici da usare e sono ben documentate, le GTK sono più complesse, i programmi GTK vanno scritti in C, mentre quelli QT in C++, quindi si ha un linguaggio orientato agli oggetti che per un programma con interfaccia grafica è abbastanza fondamentale se non si vuole diventare matti
gila75
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2739
Iscrizione: mercoledì 16 gennaio 2013, 17:28
Desktop: ubuntu-2d
Distribuzione: Ubuntu 12.04.2 LTS i686
Località: Airuno(Lecco)

Re: [C] Ncurses

Messaggio da gila75 »

Si,mi sono espresso male. Non si possono paragonare gtk e ncurses.
Mi chiedevo comunque se valesse la pena. Non vorrei davvero fosse obsoleta.
Ma in campo sono ignorante. Mi piace l'idea di poter interagire col mouse nei programmi c.
Poi non sembra nemmeno difficilissima...almeno le cose fondamentali.
Grazie per il chiarimento :)
ale4
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 761
Iscrizione: venerdì 10 agosto 2012, 17:53

Re: [C] Ncurses

Messaggio da ale4 »

Non è obsoleta, anzi è ancora usatissima (anche perchè è l'unica), semplicemente sono librerie per scopi diversi, una serve per dotare i programmi a riga di comando di un interfaccia semi-grafica, l'altra per veri e propri programmi grafici

Da usare non è per nulla difficile comunque, impari ad usarla in un pomeriggio volendo, la documentazione è buona, mentre ovviamente imparare ad usare QT è più complesso e richiede un pò di tempo
gila75
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2739
Iscrizione: mercoledì 16 gennaio 2013, 17:28
Desktop: ubuntu-2d
Distribuzione: Ubuntu 12.04.2 LTS i686
Località: Airuno(Lecco)

Re: [C] Ncurses

Messaggio da gila75 »

Grazie Ale4...bhè un pomeriggio forse no...almeno io.
Diciamo che le cose base non sono poi complicatissime, nel dettaglio immagino ci voglia tempo ed esperienza.
Per ora sono ai colori, alla creazione di finestre. Ho provato qualcosina col mouse, ma devo ancora mettermi bene.
Qt, sarebbe bello...chissà magari un domani...molto domani :D
gila75
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2739
Iscrizione: mercoledì 16 gennaio 2013, 17:28
Desktop: ubuntu-2d
Distribuzione: Ubuntu 12.04.2 LTS i686
Località: Airuno(Lecco)

Re: [C] Ncurses

Messaggio da gila75 »

Ho una domanda base da porre: quando voglio creare una finestra, esiste la funzione apposita con un puntatore alla struttura WINDOW:

Codice: Seleziona tutto

 WINDOW *mia_finestra
....
ecc..ecc.
La procedura mi sembra simile al puntatore dei file...comunque.
Dopo logicamente ci sono altre istruzioni che non riporto.
Il punto è che in prossimità degli spigoli, mi vengono messi degli "angolari" :

Codice: Seleziona tutto

┌    ┘ 
Io vorrei fare una finestra con un contorno colorato, ma senza gli spigoli es:
https://commons.wikimedia.org/wiki/File ... 5.3-de.png

Per esempio i controlli di alsamixer.
La domanda è: devo costruire in manuale, o la finestra mi forza agli angolari?
Se Uso degli spazi, gli angolari si notano. Ok potrei usare le linee sottili di default direte voi

EDIT: credo di aver risolto
gila75
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2739
Iscrizione: mercoledì 16 gennaio 2013, 17:28
Desktop: ubuntu-2d
Distribuzione: Ubuntu 12.04.2 LTS i686
Località: Airuno(Lecco)

Re: [C] Ncurses

Messaggio da gila75 »

Vediamo se qualcuno mi sa dare una mano: ho letto l'istruzione

Codice: Seleziona tutto

init_color()
Che da la possibilità di miscelare in più gradazioni i colori forniti dal terminale, che sono pochi.
Solo che col test:

Codice: Seleziona tutto

if(!can_change_color())
addstr(“This probably won’t work, but anyway:\n”);
Mi viene restituito FALSE. Il manuale dice,che nel caso, il mio terminale non supporta tale funzione.
Cosa posso fare? Dipende dalla versione di ncurses, dal terminale, cosa posso fare?
Sarebbe davvero comodo poter dosare le tonalità dei vari colori.
Grazie a tutti nel caso
Avatar utente
vbextreme
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1214
Iscrizione: domenica 12 gennaio 2014, 14:06
Desktop: lxde
Distribuzione: xubuntu 14.10

Re: [C] Ncurses

Messaggio da vbextreme »

benvenuto nel mondo ncurses......ora potrai ben capire perché esiste la easyconsole che permette di "dosare" i colori del terminale sia con i classici 8 colori sia con le estese 256 tonalità....
E ben presto capirai che se vuoi interagire normalmente col terminale le ncurses non servono a niente se non a friggere il cervello....
ehehehehe rispondo mentre guardo la nave che fa da spola tra l'isola di San Pietro e Calasetta :p
Easy framework per il linguaggio C.
vbextreme hack your life
gila75
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2739
Iscrizione: mercoledì 16 gennaio 2013, 17:28
Desktop: ubuntu-2d
Distribuzione: Ubuntu 12.04.2 LTS i686
Località: Airuno(Lecco)

Re: [C] Ncurses

Messaggio da gila75 »

E ben presto capirai che se vuoi interagire normalmente col terminale le ncurses non servono a niente se non a friggere il cervello....
Ecco!!! mi metto a studiare una libreria che secondo me è fondamentale padroneggiare...e salta fuori che non serve a nulla. Non ne azzecco una!! :D
Ma scusa se voglio usare il mouse, padroneggiare finestre (se pur rudimentali), come faccio??
Credo che ncurses, anche a livello di hobby, sia un passo obbligato, no?
La easyconsolle, sono onesto Vb (mi vergogno un po' :shy: ) non mi ricordo bene come si compila, c'era una procedura, devo rispolverare un po'.
Forse tu intendi che è inutile se vuoi usare il terminale in modo classico. Su quello sono d'accordo.
Non so, ora sei in ferie e non ti voglio rompere, ma mi piacerebbe capire bene cosa intendi
Avatar utente
vbextreme
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1214
Iscrizione: domenica 12 gennaio 2014, 14:06
Desktop: lxde
Distribuzione: xubuntu 14.10

Re: [C] Ncurses

Messaggio da vbextreme »

l'avevi disinstallata? perché altrimenti non hai bisogno di ricompilare niente, il mouse e il terminale vivono su due pianete diversi.
ncurses fa sempre bene studiarla
Easy framework per il linguaggio C.
vbextreme hack your life
gila75
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2739
Iscrizione: mercoledì 16 gennaio 2013, 17:28
Desktop: ubuntu-2d
Distribuzione: Ubuntu 12.04.2 LTS i686
Località: Airuno(Lecco)

Re: [C] Ncurses

Messaggio da gila75 »

vbextreme [url=http://forum.ubuntu-it.org/viewtopic.php?p=4788747#p4788747][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:l'avevi disinstallata? perché altrimenti non hai bisogno di ricompilare niente, il mouse e il terminale vivono su due pianete diversi.
ncurses fa sempre bene studiarla
No, no non l'avevo disinstallata solo che il tempo per lo studio è sempre meno e non ricordavo come fare.
Ma era un discorso diverso quello del make app... ecc, ricordi?
Avatar utente
vbextreme
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1214
Iscrizione: domenica 12 gennaio 2014, 14:06
Desktop: lxde
Distribuzione: xubuntu 14.10

Re: [C] Ncurses

Messaggio da vbextreme »

si si ricordo, comunque studiati la ncurses che non fanno mai male
Easy framework per il linguaggio C.
vbextreme hack your life
gila75
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2739
Iscrizione: mercoledì 16 gennaio 2013, 17:28
Desktop: ubuntu-2d
Distribuzione: Ubuntu 12.04.2 LTS i686
Località: Airuno(Lecco)

Re: [C] Ncurses

Messaggio da gila75 »

Non sembra difficilissima, poi logico è molto vasta e usarla al 100% è dura.
la cosa che spiazza è abituarsi al fatto che va gestita la posizione del cursore...un po' diverso dal terminale classico.
Fortunatamente esiste move e getyx() che ti restituisce la posizione, senza impazzire a capire (nel caso) dove sei
ale4
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 761
Iscrizione: venerdì 10 agosto 2012, 17:53

Re: [C] Ncurses

Messaggio da ale4 »

Quell'altra libreria comunque non l'ho mai sentita, da quel che so io usano tutti ncurses i programmi a riga di comando con interfaccia semi grafica, quindi direi che è meglio puntare su quella che è più usata, e soprattutto è lo standard in ogni distribuzione unix quindi se vuoi poi che il tuo codice sia compilabile ed eseguibile ovunque è necessario, per i 256 colori, verifica che il terminale li supporti controllando la variabile $TERM (dovrebbe dirti xterm-256color o una cosa simile), se non lo dice vuol dire che hai un problema con il tuo terminale
Avatar utente
vbextreme
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1214
Iscrizione: domenica 12 gennaio 2014, 14:06
Desktop: lxde
Distribuzione: xubuntu 14.10

Re: [C] Ncurses

Messaggio da vbextreme »

Quell'altra libreria comunque non l'ho mai sentita,
Mica vorrai offendere la mia creatura!

La ncurses e la easyconsole differiscono molto, mentre con la prima ci si appropria del terminale usandolo come se fosse una "nuova finestra" con easyconsole invece si ha la possibilità di interagire facilmente con il terminale in uso.
La easyconsole è nata per gli studenti e non vuole certo scalzare il posto della ncurses, come è già stato detto la ncurses era l'unica libreria per terminale su linux, ora hai anche easyconsole :p
Easy framework per il linguaggio C.
vbextreme hack your life
Avatar utente
Claudio_F
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1463
Iscrizione: lunedì 28 maggio 2012, 18:49
Desktop: Mate/Gnome
Distribuzione: Ubu22.04

Re: [C] Ncurses

Messaggio da Claudio_F »

gila75 ha scritto:la cosa che spiazza è abituarsi al fatto che va gestita la posizione del cursore...un po' diverso dal terminale classico.
Beh, il terminale "classico" è poco più che un rotolino di carta stampata (e su Linux è già un rotolino di lusso rispetto alla console win). Gestire la posizione di scrittura a video e leggere in tempo reale i tasti è quello che si faceva normalmente prima dell'avvento delle interfacce grafiche... locate e inkey$ del BASIC, gotoxy e keypressed del Pascal ecc. In realtà molte cose si riescono a fare più facilmente così che usando una vera interfaccia grafica.
gila75
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2739
Iscrizione: mercoledì 16 gennaio 2013, 17:28
Desktop: ubuntu-2d
Distribuzione: Ubuntu 12.04.2 LTS i686
Località: Airuno(Lecco)

Re: [C] Ncurses

Messaggio da gila75 »

locate e inkey$ del BASIC
Che tempi!!! Come rimpiango il mio MSX, gli sprites :D put sprites...on gosub sprites (se la memoria non m'inganna!!!)
Comunque ho scritto un programma che muove un cursore in un array con le frecce. Quando arriva al limite dx e sx viene segnalato.
Mi piacerebbe sapere se l'uso del cursore ecc è corretto.
Grazie ne caso

Codice: Seleziona tutto

#include <ncurses.h>
#include <stdlib.h>
#define DX 261
#define SX 260
#define N 30

void cursor_position(int *x,int *y);
void move_dx (int array [],int *x,int *y, int *col);
void move_sx (int array [],int *x,int *y, int *col);


void cursor_position(int *x,int *y)
{
    getyx(stdscr,*x,*y);
}

void move_dx (int array[],int *x,int *y, int *col)
{   
    int temp;
    if ( ((*col)+1)<N)
    {
        
        temp=array[(*col)+1]; //copia valore a dx
        array[(*col)+1]=array[*col];//valore a dx=valore a sx
        array[(*col)]=temp; //copia temp in posizione corrente
        attrset(COLOR_PAIR(1));
        mvprintw(*x,*y,"%d",array[(*col)]); //stampa 
        refresh();
        ++(*col); //aumenta colonne
        ++(*y);   //aumenta y cursore
        attrset(COLOR_PAIR(2));
        mvprintw(*x,*y,"%d",array[*col]); // stampa ancora
        refresh();
    }
        
    else
    {
          mvprintw (15,20 ,"limite dx");
          return;
    }

}

void move_sx (int array[],int *x,int *y, int *col)
{   
    
    int temp;
    if ( ((*col)-1)>=0)
    {
       
        temp=array[(*col)-1];
        array[(*col)-1]=array[*col];
        array[(*col)]=temp;
        attrset(COLOR_PAIR(1));
        mvprintw(*x,*y,"%d",array[(*col)]);
        refresh();
        --(*col);
        --(*y);
        attrset(COLOR_PAIR(2));
        mvprintw(*x,*y,"%d",array[*col]);
        refresh();
    }
    
    else
    {     attron(COLOR_PAIR(4));
          mvprintw (15,20 ,"limite sx");
          refresh();  
          attroff(COLOR_PAIR(4));  
          return;
    }

}

int main()
{	
	initscr();			
    start_color();
    cbreak();
    noecho();
    intrflush(stdscr, FALSE);
    keypad(stdscr, TRUE);

    
    init_pair(1,COLOR_BLUE,COLOR_GREEN);
    init_pair(2,COLOR_YELLOW,COLOR_RED);
    init_pair(3,COLOR_BLACK,COLOR_BLACK);
    init_pair(4,COLOR_RED,COLOR_YELLOW);
    bkgd(COLOR_PAIR(3));
	refresh();
    			
    int array[N]={0};
    int i;
    int col=8;
    int x,y;
    int ch;
    
     curs_set(0);
    attrset(COLOR_PAIR(1));  
    move (10,10);
    for (i=0; i<N; i++)
        printw("%d",array[i]);
    refresh();    
    array[8]=1;
    move (10,18);
    attrset(COLOR_PAIR(2));
    printw("%d",array[8]);
     mvaddstr(7,15,"premere q per uscire");
    move (10,18);
    refresh();
   
    cursor_position(&x,&y);
    refresh(); 
    while (ch != 'q')
    {
        ch = getch();
        if (ch==DX)
            {
                move_dx(array,&x,&y,&col);
               
            }
        
        if (ch==SX)
            {
                move_sx(array,&x,&y,&col);
               
            }
        
      

    }


    refresh();	
	endwin();			

	return 0;
}
gila75
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2739
Iscrizione: mercoledì 16 gennaio 2013, 17:28
Desktop: ubuntu-2d
Distribuzione: Ubuntu 12.04.2 LTS i686
Località: Airuno(Lecco)

Re: [C] Ncurses

Messaggio da gila75 »

Nessun consiglio ? Vorrei solo capire se gestico in modo corretto il cursore, o se sto facendo giri inutili
Avatar utente
vbextreme
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1214
Iscrizione: domenica 12 gennaio 2014, 14:06
Desktop: lxde
Distribuzione: xubuntu 14.10

Re: [C] Ncurses

Messaggio da vbextreme »

non conosco molto bene le ncurses.....il gioco va? e allora hai usato correttamente il tutto!

devi imparare a scrivere il codice in maniera un pelo piu elegante, ti faccio vedere un esempio ma con la easyconsole cosi vedi le differenze con la ncurses.....(io ritengo che in questo caso la easyconsole batta la ncurses 10 a 0 ma sono di parte....)

Codice: Seleziona tutto

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <easyconsole.h>
#include <easythread.h>


#define TITLE_LEFT 12
#define TITLE_TOP 4
#define TITLE_CAPTION "Press 'q' to exit"
#define TITLE_BK CON_COLOR_BK_BLUE
#define TITLE_FR CON_COLOR_WHYTE

#define STATUS_TOP 12
#define STATUS_CAPTION_NORMAL "!move!"
#define STATUS_CAPTION_SX "!limite sx!"
#define STATUS_CAPTION_DX "!limite dx!"
#define STATUS_BK CON_COLOR_BK_RED
#define STATUS_FR CON_COLOR_BLACK

#define GAME_LEFT 6
#define GAME_TOP 7
#define GAME_NOR_CHR '0'
#define GAME_NOR_COLOR_BK CON_COLOR_BK_CYAN
#define GAME_NOR_COLOR_FR CON_COLOR_BLACK
#define GAME_SEL_CHR '1'
#define GAME_SEL_COLOR_BK CON_COLOR_BK_LBLUE
#define GAME_SEL_COLOR_FR CON_COLOR_RED
#define GAME_LINE_SZ 28
#define GAME_CHR_EXIT 'q'

#define cpurelax() thr_msleep(30)

int px = GAME_LINE_SZ / 2;

void draw_title()
{
	con_setcolor(0,0);
	con_cls();
	con_gotorc(TITLE_TOP, TITLE_LEFT);
	con_printfk("%*.*k" TITLE_CAPTION, TITLE_BK, TITLE_FR);
	con_setcolor(0,0);
}

void draw_status()
{
	con_gotorc(STATUS_TOP, 0);
	con_clsline(CON_CLLS_RIGHT);
	con_setcolor(STATUS_BK, STATUS_FR);
	
	switch( px )
	{
		default: con_printfk("%*.*t%s", STATUS_TOP, GAME_LEFT + GAME_LINE_SZ / 2 - strlen(STATUS_CAPTION_NORMAL) / 2, STATUS_CAPTION_NORMAL); break;
		case 0: con_printfk("%*.*t%s", STATUS_TOP, GAME_LEFT + GAME_LINE_SZ / 2 - strlen(STATUS_CAPTION_SX) / 2, STATUS_CAPTION_SX); break;
		case GAME_LINE_SZ: con_printfk("%*.*t%s", STATUS_TOP, GAME_LEFT + GAME_LINE_SZ / 2 - strlen(STATUS_CAPTION_DX) / 2, STATUS_CAPTION_DX); break;
	}
	con_setcolor(0,0);
}

void draw_game()
{
	con_setcolor(GAME_NOR_COLOR_BK, GAME_NOR_COLOR_FR);
	con_line(GAME_TOP, GAME_LEFT, GAME_TOP, GAME_LEFT + GAME_LINE_SZ, GAME_NOR_CHR);
	con_setcolor(0,0);
}

void cell_sr(int sr)
{
	con_gotorc(GAME_TOP, GAME_LEFT + px);
	con_setcolor( (sr) ? GAME_SEL_COLOR_BK : GAME_NOR_COLOR_BK, (sr) ? GAME_SEL_COLOR_FR : GAME_NOR_COLOR_FR);
	putchar((sr) ? GAME_SEL_CHR : GAME_NOR_CHR);
	con_setcolor(0,0);
}

void cell_move(int dir)
{
	cell_sr(0);
	px += dir;
	if ( px < 0 ) px = 0;
	if ( px > GAME_LINE_SZ ) px = GAME_LINE_SZ;
	cell_sr(1);
	draw_status();
	con_flush();
}
	
int main()
{   
	con_async(1);
	
	draw_title();
	draw_game();
	draw_status();
	cell_move(0);
	con_flush();
	
	int chr = 1;
	
	while( chr )
	{
		chr = ( con_kbhit() ) ? con_getchex() : 1;
		cpurelax();
		
		switch ( chr )
		{
			case GAME_CHR_EXIT: chr = 0;       break;
			case CON_KEY_SX   : cell_move(-1); break;
			case CON_KEY_DX   : cell_move(1);  break;
		}
	}
	
	con_async(0);
	con_cls();
	return 0;
}
compila con
-leasyconsole -leasythread
ricordi? ad ogni header corrisponde una libreria.....

si potrebbe ridurre notevolmente il codice usando la con_printfk esempio:

Codice: Seleziona tutto

#define draw_title() con_printfk("%0.0k%/%*.*t%*.*k" TITLE_CAPTION "%0.0k",TITLE_TOP , TITLE_LEFT, TITLE_BK, TITLE_FR)

#define cell_sr(SR)	con_printfk("%*.*t%*.*k%c%0.0k",GAME_TOP, GAME_LEFT + px, (SR) ? GAME_SEL_COLOR_BK : GAME_NOR_COLOR_BK, (SR) ? GAME_SEL_COLOR_FR : GAME_NOR_COLOR_FR, (SR) ? GAME_SEL_CHR : GAME_NOR_CHR)
e ulteriori accrocchi ma sono troppo obfuscated e finirebbero per rendere incomprensibile il codice.
Easy framework per il linguaggio C.
vbextreme hack your life
gila75
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2739
Iscrizione: mercoledì 16 gennaio 2013, 17:28
Desktop: ubuntu-2d
Distribuzione: Ubuntu 12.04.2 LTS i686
Località: Airuno(Lecco)

Re: [C] Ncurses

Messaggio da gila75 »

non conosco molto bene le ncurses.....il gioco va? e allora hai usato correttamente il tutto!
Si si, va. Ma come sai molto meglio di me, in programmazione ci sono 1000 modi per far funzionare le case, ma di solito 999 sono
giri assurdi :)
e solo un movimento all'interno di un array. l'hai provato?
devi imparare a scrivere il codice in maniera un pelo piu elegante, ti faccio vedere un esempio
Pensavo di aver fatto un bel lavoro :D Prototipi delle funzioni in cima...tutto (mi sembrava) bello ordinato...
Cerco di andare pari passo con ncurses e la easy consolle...ma sono in ferie e vado a rilento.
Se lo compili vedi cosa fa, è una stupidata, però mi fa prendere confidenza con il cursore.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 12 ospiti