Bonjour à tous,
Dernièrement, je suis tombé sur ce site https://www.ross.click/2011/02/creat...r-console-app/, et je ne comprend pas comment cette ligne de code peut fonctionner :'\033[F' signifie juste placer le curseur au début de la ligne précédente, et '\033[J' efface l'écran du curseur jusqu'à la fin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part printf("\n\033[F\033[J");
Je me suis renseigné du coup, j'ai appris qu'il s'agissait de séquence d'échappement ASCII (ou du VT100). Mais je n'ai pas réussi à trouver pourquoi ça fonctionne. Les listes existantes sur les séquences d'échappements (comme https://www.gnu.org/software/screen/...trol-Sequences) ne donnent pas plus d'explication que ça. Et les quelques forums que j'ai visité ne m'ont pas donné plus d'informations non plus. Puis j'ai réfléchi aussi, mais en général ça donne pas grand chose chez moi.
En fait, si je fait :
On voit bien que "azerty" n’apparaît pas dans la console, le programme se met en pause 5 secondes, normal.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 1 #include <stdio.h> 2 3 int main(){ 4 printf("azerty"); 5 printf("\033[2K");//'\033[2K' c'est effacer la ligne entière 6 sleep(5); 7 return 0; 8 }
Par contre si je fais :
On voit "azerty" affiché pendant les 5 secondes de pause, alors que pour moi rien ne doit être affiché... ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 1 #include <stdio.h> 2 3 int main(){ 4 printf("azerty"); 5 printf("\n\033[F\033[2K"); 6 sleep(5); 7 return 0; 8 }
J'ai du mal à comprendre l'impact du \n\033[F sur le code, étant donné qu'il s'agit de la seule différence entre les deux codes.
Si quelqu'un avait la gentillesse de bien vouloir m'expliquer ce qui se passe, je lui en serait fortement reconnaissant.
Merci d'avance !!!!
Partager