Réinitialiser le point d'écran en haut de l'écran dans la console Windows et Linux

StackOverflow https://stackoverflow.com/questions/56324

  •  09-06-2019
  •  | 
  •  

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.

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top