Effacer le texte dans une console sous C
Boriss
-
jisisv Messages postés 3678 Statut Modérateur -
jisisv Messages postés 3678 Statut Modérateur -
Bonjour,
J'ai assez récemment commencé à apprendre la programmation en C, je créé donc des programmes en console et je voudrais savoir comment effacer le texte écrit pendant l'exécution. J'espère avoir été clair. Merci d'avance.
J'ai assez récemment commencé à apprendre la programmation en C, je créé donc des programmes en console et je voudrais savoir comment effacer le texte écrit pendant l'exécution. J'espère avoir été clair. Merci d'avance.
4 réponses
-
Salut !
Si ton programme reste sous Windows, tu peux utiliser ceci :system("cls");Mais toutefois certains protesterons, je ne sais pas pourquoi.
Si tu veux que ton programme aille autre part que sous Windows, j'ai déjà vu un psot qui traitait de cela.
Recherche dans les quelques dernières pages de tout mes posts :
https://forums.commentcamarche.net/forum/s/programmation-3/u/bilow
Bonne recherche :D
[ Désolé, mais je ne me souviens vraiment pas duquel... ] -
Bonjour,
Voici le code en C :#include <windows.h> void windows_clear_screen(void) { HANDLE hConsole; CONSOLE_CONS_BUFFER_INFO Info; DWORD NbOctetsEcrits; /* Requis par FillConsoleOutputCharacter */ COORD Debut = {0, 0}; /* STD_OUTPUT_HANDLE fait reference a la sortie standard du programme qui est par defaut la console */ hConsole = GetStdHandle(STD_OUTPUT_HANDLE); /* Lit les infos sur le buffer de l'ecran */ GetConsoleScreenBufferInfo(hConsole, &Info); /* Remplit l'ecran avec le caractere espace */ FillConsoleOutputCharacter(hConsole, ' ', Info.dwSize.X*Info.dwSize.Y, Debut, &NbOctetsEcrits); /* Remet le curseur au debut de l'ecran */ SetConsoleCursorPosition(hConsole, Debut); }
Source : https://c.developpez.com/faq/?page=Gestion-du-clavier-et-de-l-ecran-en-mode-console#CONS_clear_screen
Il vaut mieux passer par les API qu'utiliser la fonction system().
Cdlt, -
-
Et si ta console supporte l'ANSI, un simple
puts("\x1b[2J"); suffira.