Effacer un ecran en C

Laurent -  
 dop -
Quelqu'un peut-il me dire comment on efface l'ecran en
programmation c.

Merci A+

10 réponses

  1. cyril
     
    tu peux inclure la bibliotheque process.h

    et dans le main ou ailleurs metttre system("cls");

    mais ça doit marcher que sous windows j'ai pas essayer sous unix
    3
  2. allaWos
     
    moi j'ai fait, sous linux, avec :

    #include <stdlib.h>

    system("clear");
    3
  3. batmat
     
    il y a en effet clrscr() qui est dans conio.h seulement ce n'est pas portable, donc la seule solution sous un autre os c de sauter autant de lignes qu'il faut pour effacer tout (en général c 26 )
    @+
    2
  4. freedoomer
     
    non, clrscr ne fonctionne pas avec tous les compilos, system("cls") est une bonne alternative
    2
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. pat
     
    boujours,
    je voudrais savoir comment on fait pour mettre un message qui clignote et avec un son en c++.
    merci
    1
  7. jisisv Messages postés 3678 Statut Modérateur 936
     
    Sous les terminaux qui le supportent (vt100, xterm),
    écran DOS avec pilote ansy.sys ou équivalent, il est plus s'imple d'envoyer la séquence
    ESC[2J

    #include <stdio.h>
    #define ESCAPE 27
    #define CLEAR "[2J"

    int main(void)
    {
    printf("%c%s", ESCAPE,CLEAR);
    return 0;
    }

    L'appel à system est un peu lourd, non?

    Johan Daine

    The software said "Requires Windows98, Win2000, or better,
    So I installed Unix.
    1
  8. johann
     
    Salut tout le monde, je suis un débutant en C
    et j'avais le même problème :
    la fonction clrsrc() marchait avec dev-C++ de la version 4.0.0.0
    et avec conio.c
    mais j'ai du passer avec à la version 4.9.9.1 de Dev
    et il ne connait pas clrsrc()
    j'ai essayé ça sans résultat

    #include <stdio.h>
    #define ESCAPE 27
    #define CLEAR "[2J"

    int main(void)
    {
    printf("%c%s", ESCAPE,CLEAR);
    return 0;
    }

    Grâce à ce forum j'ai essayé
    tu peux inclure la bibliotheque process.h

    et dans le main ou ailleurs metttre system("cls");

    et ça marcher
    CIAO et MERCI BCQ
    1
  9. dop
     
    bonjour. je poste ici une fonction portable et fort pratique :

    http://c.developpez.com/faq/c

    #ifdef _Windows
    #include <windows.h>
    #elif defined(linux) /* ou autres Unix qui possèdent NCurses */
    #include <ncurses.h>
    #define UTILISE_NCURSES
    #elif defined(__MSDOS__)
    #include <dos.h>
    #endif

    /* Efface l'écran texte et se positionne le curseur en haut à gauche */
    void EffaceEcranTxt(void)
    {
    #if defined(UTILISE_NCURSES)
    clear();
    move (0,0);
    #elif defined(_Windows)

    /* Début : (1,1) */
    CONSOLE_SCREEN_BUFFER_INFO Info;
    COORD Debut;
    DWORD NbrOctetEcrit;
    Debut.X = 0;
    Debut.Y = 0;

    /* Lit les infos sur le buffer */
    GetConsoleScreenBufferInfo (HdlConsole, &Info);

    /* Remplit l'écran avec le caractère espace : ' ' */
    FillConsoleOutputCharacter (HdlConsole, ' ', Info.dwSize.X*Info.dwSize.Y, Debut, &NbrOctetEcrit);

    /* Positionne le curseur */
    SetConsoleCursorPosition (HdlConsole,Debut);
    #elif defined(__MSDOS__)
    union REGS inregs, outregs;
    struct SREGS segregs;
    inregs.h.ah = 0x00; /* Fonction 00h : Change de mode video */
    inregs.h.ah = 0x03; /* Mode = 03h : 80x25 caracteres, 16 couleurs */
    int86x(0x10, &inregs, &outregs, &segregs); /* Interruption 10h : Video */
    #endif
    }
    1
  10. The Slayer
     
    ClrScr ne marche pas sous dos en effet
    0
    1. batmat Messages postés 1880 Date d'inscription   Statut Membre 114
       
      Avant de donner des réponses aussi catégoriques, tu devrais te renseigner : les gens qui débutent peuvent prendre cette réponse pour argent comptant et elle est fausse :
      -> clrscr() marche très bien sous dos, seulement c'est une fonction de conio.h, que MSVC++ n'intègre pas par exemple. (si tu as testé ClrScr c'est normal que cela n'aie pas fonctionné, ca ne prend pas de majuscules). Je crois pouvoir dire que conio.h est un header développé par Borland et c'est donc la raison pour laquelle microsoft ne l'intègre pas en standard.

      @++
      Batmat
      ____________________________
      Vous hésitez entre Linux et Windows?
      Vous voulez dépenser du temps ou de l'argent ?
      0
  11. karim
     
    pour effacer un ecran c'est la commande: clrscr();
    -2