Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [C/Unix] Quante Colonne ha' la Console ???

    E' possibile sapere quante colonne ha il mio terminale ???

    Non rispondete 80x25 perche' si puo' cambiare...

    Mi serve qualcosa che lo trovi indipendentemente dalle modifiche che vengono fatte alla console...

    Grazie.

  2. #2
    Nessuno ??? Qualcuno pero' ha capito o mi sono spiegato male ??? VVoVe:

  3. #3
    Dalla Bash basta fare "echo $COLUMNS"

  4. #4
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Originariamente inviato da vortex87
    Dalla Bash basta fare "echo $COLUMNS"
    Esatto


    #include <stdlib.h>
    int colonne = getenv("COLUMNS");
    int linee = getenv("LINES");


    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  5. #5

  6. #6
    $COLUMNS e' una variabile della bash...
    Shell Variables
    Builtin Shell Variables

    * COLUMNS Numbers of columns on the display
    * HISTSIZE Number of commands in command history (default 500)
    * LINES Numbers of lines on the display
    non e' un env. quindi questo non funziona...
    codice:
    #include <stdlib.h>
    int colonne = getenv("COLUMNS");
    int linee = getenv("LINES");
    Come posso risolvere ???

  7. #7
    non ho mai provato, ma forse:

    tramite system() prova a stampare i risultati del "comando" bash... in un file di testo e poi reperisci i valori scritti nel file.
    ...Terrible warlords, good warlords, and an english song

  8. #8
    Questo programmino dovrebbe funzionare...
    codice:
    #include <readline/readline.h>
    #include <stdio.h>
    
    int main () {
    	int r, c;
    	rl_get_screen_size(&r, &c);
    	printf("Le colonne del terminale sono: %d", c);
    	return(0);
    }
    solo che quando lo compilo con gcc -Wall pgmcolonne.c -o pgmcolonne ottengo questi errori:
    codice:
    In file included from /usr/include/readline/readline.h:37,
                     from pgmcolonne.c:1:
    /usr/include/readline/rltypedefs.h:65: error: syntax error before '*' token
    In file included from pgmcolonne.c:1:
    /usr/include/readline/readline.h:400: error: syntax error before '*' token
    /usr/include/readline/readline.h:516: error: syntax error before '*' token
    /usr/include/readline/readline.h:517: error: syntax error before '*' token
    /usr/include/readline/readline.h:779: error: syntax error before "FILE"
    /usr/include/readline/readline.h:790: error: syntax error before '}' token
    Questi errori sembrano sulla libreria readline... Come mai ???
    Come posso risolvere ??

  9. #9
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Prova ad aprirti l'header readline/readline.h (il path assoluto dovrebbe essere /usr/include/readline/readline.h) e guardare che errori hanno quelle linee...

    Ti ho risparmiato la fatica: compaiono gli errori perche' in quel file vengono utilizzati alcuni tipi di dato, come ad esempio FILE che non sono stati definiti precedentemente...
    Prova a modificare cosi' il programma:
    codice:
    #include <stdio.h>
    #include <readline/readline.h>
    
    int main () {
    	int r, c;
    	rl_get_screen_size(&r, &c);
    	printf("Le colonne del terminale sono: %d", c);
    	return(0);
    }
    Pero' da sempre un errore: rl_get_screen_size non viene trovata...
    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.