Effacer la console

Effacer la console - C++ - Programmation

Marsh Posté le 06-03-2003 à 23:10:24    

Pour effacer la console j'utilisais classiquement le system("clear" ) (ou system("cls" ) sous windows). Cela dit le programme n'est pas protable car il fait appel à une fonction système.
En cherchant un peu sur le web, je suis tombé sur un truc de dingue !!!
Le simple fait de faire printf("\033[2J" ) efface la console !!!
Cela resoud mon problème de portabilité mais je me demande toutefois comment se fait-il que cela fonctionne ???


---------------
-@- When code matters more than commercials -@-
Reply

Marsh Posté le 06-03-2003 à 23:10:24   

Reply

Marsh Posté le 07-03-2003 à 00:12:55    

manu025 a écrit :

Pour effacer la console j'utilisais classiquement le system("clear" ) (ou system("cls" ) sous windows). Cela dit le programme n'est pas protable car il fait appel à une fonction système.
En cherchant un peu sur le web, je suis tombé sur un truc de dingue !!!
Le simple fait de faire printf("\033[2J" ) efface la console !!!
Cela resoud mon problème de portabilité mais je me demande toutefois comment se fait-il que cela fonctionne ???


 
et ne le sera jamais. Le C (ansi) ne sait pas ce qu'est un "ecran".
Ca, ca depend de ton OS et tes librairies qui s'y trouvent.

Reply

Marsh Posté le 07-03-2003 à 00:49:17    

mais c'est quoi alors le coup du printf ???


---------------
-@- When code matters more than commercials -@-
Reply

Marsh Posté le 07-03-2003 à 10:16:11    

manu025 a écrit :

mais c'est quoi alors le coup du printf ???


 
ca correspond à un vieux code videotext utilisé sur les consoles de type VT. Ca a été gardé sur pas mal de plateforme pour des raisons de compatibilité.

Reply

Marsh Posté le 07-03-2003 à 10:24:39    

Pour les autres séquences d'échappement, c'est par là : http://www.kitebird.com/csh-tcsh-book/ctlseqs.pdf
 
printf("\033c" ) marche pas mal non plus (reset de la console). D'ailleurs c'est bien utile quand on a fait un cat d'un fichier binaire :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed