Effacer un ecran en C

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

Merci A+
A voir également:

10 réponses

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
allaWos
 
moi j'ai fait, sous linux, avec :

#include <stdlib.h>


system("clear");
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
freedoomer
 
non, clrscr ne fonctionne pas avec tous les compilos, system("cls") est une bonne alternative
2

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pat
 
boujours,
je voudrais savoir comment on fait pour mettre un message qui clignote et avec un son en c++.
merci
1
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
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
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
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
The Slayer
 
ClrScr ne marche pas sous dos en effet
0
batmat Messages postés 1871 Date d'inscription   Statut Membre Dernière intervention   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
karim
 
pour effacer un ecran c'est la commande: clrscr();
-2