Posez votre question Signaler

Effacer un ecran en C

Laurent - Dernière réponse le 11 févr. 2005 à 12:39
Quelqu'un peut-il me dire comment on efface l'ecran en
programmation c.

Merci A+
Lire la suite 

Effacer un ecran en C »

11 réponses
Réponse
+2
moins plus
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 )
@+
Ajouter un commentaire
Réponse
+2
moins plus
moi j'ai fait, sous linux, avec :

#include <stdlib.h>


system("clear");
Ajouter un commentaire
Réponse
+1
moins plus
non, clrscr ne fonctionne pas avec tous les compilos, system("cls") est une bonne alternative
Ajouter un commentaire
Réponse
+1
moins plus
boujours,
je voudrais savoir comment on fait pour mettre un message qui clignote et avec un son en c++.
merci
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
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
}
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
ClrScr ne marche pas sous dos en effet
batmat - 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 ?
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
-2
moins plus
pour effacer un ecran c'est la commande: clrscr();
Ajouter un commentaire
Ce document intitulé « effacer un ecran en C » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook