Effacer un ecran en C

Fermé
Laurent - 28 mars 2001 à 23:00
 dop - 11 févr. 2005 à 12:39
Quelqu'un peut-il me dire comment on efface l'ecran en
programmation c.

Merci A+
A voir également:

10 réponses

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

#include <stdlib.h>


system("clear");
3
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
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
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 dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
17 janv. 2003 à 10:11
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
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
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
ClrScr ne marche pas sous dos en effet
0
batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008 114
16 janv. 2003 à 22:11
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
pour effacer un ecran c'est la commande: clrscr();
-2