IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

[efface ecran mode console]


Sujet :

C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 30
    Points : 32
    Points
    32
    Par défaut [efface ecran mode console]
    Bonjour,

    J'ai regardé dans la FAQ C et j'ai trouvé une fonction
    permettant d'effacer l'écran.

    #include <ncurses.h>

    void unix_clear_screen(void)
    {
    clear();
    move(0, 0);
    }

    le problème c'est que j'obtiens le message
    d'erreur suivant :
    gcc -o acropol acropol.c
    /tmp/ccWQjpb1.o: In function `unix_clear_screen':
    acropol.c:(.text+0x809): undefined reference to `stdscr'
    acropol.c:(.text+0x811): undefined reference to `wclear'
    acropol.c:(.text+0x816): undefined reference to `stdscr'
    acropol.c:(.text+0x82e): undefined reference to `wmove'
    collect2: ld returned 1 exit status

    linux ubuntu 2.6.32-25-generic
    gcc (Ubuntu 4.4.3-4ubuntu5)

    Merci pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    A la compilation, il faut établir un lien dynamique avec la lib curses.
    Pour ce faire, il faut ajouter -lncurses dans la ligne de commande.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 30
    Points : 32
    Points
    32
    Par défaut
    Merci beaucoup,

    j'ai essayé et toujours la même chose:
    gcc -Incurses.h -o acropol acropol.c
    /tmp/ccBUf6Bq.o: In function `unix_clear_screen':
    acropol.c:(.text+0x80e): undefined reference to `stdscr'
    acropol.c:(.text+0x816): undefined reference to `wclear'
    acropol.c:(.text+0x81b): undefined reference to `stdscr'
    acropol.c:(.text+0x833): undefined reference to `wmove'
    collect2: ld returned 1 exit status

    cependant j'ai trouvé une autre solution pour effacer l'écran:

    printf("\033[2J\033[0;0H"); /* je ne comprends pas vraiment ce code */

    et ça fonctionne j'aurai aimé savoir le pourquoi de l'erreur mais bon.

    Merci encore

  4. #4
    Invité
    Invité(e)
    Par défaut
    en fait ce n'est pas -I mais -l en minuscule, le l de "library"
    l'essentiel c'est d'avoir trouvé une solution

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 408
    Points : 23 803
    Points
    23 803
    Par défaut
    Bonjour,

    Citation Envoyé par duchmul Voir le message
    Merci beaucoup,

    j'ai essayé et toujours la même chose:
    gcc -Incurses.h -o acropol acropol.c
    — C'est -lncurses tout court, qu'il faut écrire, sans « .h »
    — Un fichier *.h n'est pas une bibilothèque C (library). C'est un fichier à inclure qui contient généralement la description de l'API de ladite bibliothèque, ce afin que ton compilateur sache comment on appelle les fonctions que tu utilises. C'est pour ça qu'il faut quand même faire la liaison a posteriori avec l'option que l'on t'a donné.

    cependant j'ai trouvé une autre solution pour effacer l'écran:

    printf("\033[2J\033[0;0H"); /* je ne comprends pas vraiment ce code */
    — 033 en octal correspond à 27 en décimal et 1B en hexadécimal. Dans tous les cas, c'est le numéro du caractère Escape « Esc » ;
    — « ESC [ », c'est la séquence appelée C.S.I. et qui sert à piloter les terminaux D.E.C., dont tous les terminaux virtuels UNIX et même la ligne de commande de D.O.S. s'inspirent ;

    Jette un œil à cette discussion.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Effacer l'écran en mode console Java
    Par ham's show dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 15/01/2015, 11h10
  2. Ecran en mode Console au démarrage
    Par JP.NUAGE dans le forum Ubuntu
    Réponses: 3
    Dernier message: 28/09/2009, 23h33
  3. effacer ecran dans la console
    Par lecaire dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 30/04/2009, 13h00
  4. Mode console et MFC ??
    Par G3G3 dans le forum MFC
    Réponses: 7
    Dernier message: 20/02/2004, 18h49
  5. Editeur en mode console
    Par logramme dans le forum C
    Réponses: 5
    Dernier message: 11/06/2002, 14h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo