Réinitialiser le point d'écran en haut de l'écran dans la console Windows et Linux
Question
J'ai une petite routine qui s'exécute sous Linux et Windows, écrite en C et affiche la sortie sur la console.Je ne crée aucun lien sous aucune forme de malédiction ou quoi que ce soit du genre.
Actuellement, j'efface l'écran en utilisant
#ifdef __WIN32
system( "cls" );
#else
system( "clear" );
#endif
Ensuite, j'ai un tas d'instructions printf pour mettre à jour le statut.Ce que je voudrais, c'est simplement réinitialiser le pointeur d'écran à 0,0 pour pouvoir ensuite superposer mes printfs.Je préfère éviter de compiler d'autres extensions, d'autant plus que je code pour 2 systèmes d'exploitation différents.
La solution 2
On dirait que j'ai peut-être trouvé une manière spécifique à Windows de le faire SetConsoleCursorPosition
Séquence d'échappement Ansi \033[0;0H pour Linux - imprimez-la simplement sur la console.
Autres conseils
Pour les plates-formes de type Unix, la manière habituelle de procéder consiste à utiliser le malédictions bibliothèque.
Oui, pour les plateformes Unix, les malédictions (ou ncurses, de nos jours) sont la voie à suivre.Et il existe des versions qui fonctionnent sous Windows, vous pouvez donc procéder de la même manière sur les deux systèmes.
Pour Windows - Vous pouvez utiliser des caractères d'échappement ANSI.
http://www.lexipixel.com/news/star_dot_star/using_ansi_escape_sequences.htm
http://www.robvanderwoude.com/ansi.html
printf "\x[0;0H"
Auparavant, Ansi.sys devait être chargé avant de pouvoir le faire, mais cela vaut le coup.
Instructions pour ajouter la prise en charge ANSIhttp://www.windowsnetworking.com/kbase/WindowsTips/WindowsXP/UserTips/CommandPrompt/CommandInterpreterAnsiSupport.htmlNote:qu'Ansi.sys ne fonctionne que sous command.com.Vous ne pouvez pas l'utiliser avec cmd.exe