Pantalla de ajuste de punto de la parte superior de la pantalla en Windows y la consola de Linux
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'.
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