Pantalla de ajuste de punto de la parte superior de la pantalla en Windows y la consola de Linux

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

  •  09-06-2019
  •  | 
  •  

Pregunta

Tengo una pequeña rutina que se ejecuta bajo Windows y Linux escrito en C y muestra el resultado en la consola.No estoy de vinculación en cualquier forma de maldiciones ni nada de eso.

Actualmente puedo limpiar la pantalla con

#ifdef __WIN32
  system( "cls" );
#else
  system( "clear" );
#endif

Entonces tengo un montón de printf instrucciones para actualizar el estado.Lo que me gustaría simplemente reiniciar el screenpointer a 0,0 así luego puedo sólo superposición de mi printfs.Prefiero evitar compilar en cualquier extensiones más especialmente desde que estoy de codificación para 2 sistema operativo diferente'.

¿Fue útil?

Solución 2

Parece que han encontrado un windows manera específica de hacerlo SetConsoleCursorPosition

Secuencia de escape Ansi \033[0;0 H para Linux - sólo printf que a la consola.

Otros consejos

Para las plataformas Unix-like, la forma habitual de hacerlo es utilizando la maldiciones biblioteca.

Sí, para plataformas unix, maldiciones (o ncurses, en estos días) es el camino a seguir.Y hay versiones que funcionan bajo windows, así que usted podría hacer de la misma manera en ambos sistemas.

Para windows que puede utilizar caracteres de escape ANSI.

http://www.lexipixel.com/news/star_dot_star/using_ansi_escape_sequences.htm

http://www.robvanderwoude.com/ansi.html

printf "\x[0;0H"

Solía ser que Ansi.sys necesarios para ser cargado antes de que usted podría hacer esto, pero vale la pena un tiro.

Instrucciones para añadir soporte de ANSI http://www.windowsnetworking.com/kbase/WindowsTips/WindowsXP/UserTips/CommandPrompt/CommandInterpreterAnsiSupport.html Nota:que Ansi.sys sólo funciona bajo command.com.No se puede utilizar con cmd.exe

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top