Comment implémentons-nous CLRSCR () code>? Googling it j'ai trouvé que \ x1b [2j code> peut être utilisé pour effacer l'écran mais comment l'utilisons-nous? P>
4 Réponses :
La bibliothèque C standard C fournit un moyen de nettoyer l'écran. Vous avez besoin d'une bibliothèque dépendante du système de fonctionnement pour cela.
sous DOS et Windows, pour un programme exécutant dans une console DOS ou Windows, vous pouvez utiliser les extensions DOS / Windows fournies dans la bibliothèque Core C expédiée avec le système d'exploitation: p> sous Systèmes UNIX, vous pouvez utiliser la bibliothèque de la malédiction, fournie avec le système d'exploitation. Les ports de la bibliothèque de malédictions existent pour la plupart des systèmes d'exploitation, y compris Windows, de sorte que c'est la voie à suivre dans un programme portable. Liez votre programme avec Certains terminaux et émulateurs de terminaux effectuent des fonctions spéciales telles que le nettoyage de l'écran lorsqu'ils reçoivent une séquence d'évacuation. La plupart des terminaux suivent la norme ANSI qui définit un certain nombre de séquences d'échappement; -lcurses code> et utilisez p> "\ x1b [2j" code> est une telle séquence et son effet est d'effacer l'écran. Notez le capital j code>. Sur un tel terminal, fputts ("\ x1b [2j", stdout) code> efface l'écran. C'est en fait quelle est la bibliothèque de la malédiction lorsque vous appelez effacer () code> sur un tel terminal; La bibliothèque de la mallette comprend une base de données de types de bornes et quelles séquences d'échappement à utiliser sur les différents types. p> p>
Si vous êtes convaincu que la séquence de contrôle, vous devez utiliser, alors: ceci omet délibérément la nouvelle ligne - mais vous serez peut-être mieux en ajoutant un après le "J '. Cependant, comme Gilles pointe dans son Réponse , il existe d'autres moyens de le faire, qui ont des mérites par rapport à cette solution. P> P>
@FAHAD: Quelle plate-forme êtes-vous? Si vous êtes en héritage uni, vous devez avoir des ansi.sys chargés pour les évasions terminales pour travailler. Pas sûr de Windows. Sur UNIX, il devrait toujours fonctionner à moins que vous ayez une borne impaire vraiment i> avec des codes d'évacuation non standard.
@FAHAD: OK - Dans ce cas, allez avec la suggestion de Giles et la fonction CLRSCR () code>.
En fait, je veux mettre en œuvre CLRSCR (). ne pas avoir besoin d'un fichier d'en-tête :(
"\ x1b [h \ x1b [2J" fonctionne sur OSX. Sous Windows 'cmd il n'y a pas une telle séquence Afaik.
@,Tvaroh: Dans les anciens jours de DOS, il était courant que les systèmes disposent d'un pilote appelé ANSI.SYS, ou de l'une des nombreuses alternatives de l'après-marie, installées. Les fonctions de redéfinition de la clé d'ANSI.SYS étaient dangereuses (de nombreuses versions de l'après-marie les ont omis), mais ayant un support configurable pour ces séquences auraient été agréables. Je me demande pourquoi les MM ne les laissa pas entièrement dans les pilotes de ligne de commande ultérieurs?
sous Windows Vous pouvez essayer "\ x1b [h \ x1b [2j" fonctionne sur OSX. p> p>
Ceci est une séquence d'évacuation ANSI qui contrôle le terminal de texte et fonctionnera avec n'importe quel terminal compatible ANSI [1]: P>
\ x1b [2J code> Effacer l'écran et envoyez du curseur à la position de la maison. Li>
-
\ x1b [h code> Envoyer un curseur à la position du curseur de la maison. Li>
ul>
juste printf ("\ x1b [2j"); code> ou echo "\ x1b [2j" code> il ou quelle que soit la méthode d'impression qui vous convient :-) J'utilise ça avec PrintF () Code> Pour l'écran CLEAR Terminal initial Lors de la production d'une sortie de débogage des journaux d'un système intégré sur une connexion UART, mais vous pouvez également l'utiliser également sur un terminal standard de type UNIX avec Echo Code>: -) p>
[1] https://fr.wikipedia.org/wiki/ansi_escape_code << / p>
Cela dépend de votre système d'exploitation et de votre environnement en général.
Je me demande si cette question a du sens du tout. Soit vous créez une application "FullScreen", alors vous saurez déjà (plate-forme - etc.) Comment positionner le curseur et bien plus encore, y compris comment effacer l'écran. Ou vous créez une utilitaire de ligne CMD, qui semble bien si vous utilisez simplement des pauses de ligne et peut-être des backspaces ou de la CRS (pour les comptes de ligne redessinant au même endroit par exemple) ...