我有一个小例程,它运行在用C语言编写的Linux和Windows下,并在控制台上显示输出。我没有用任何形式的诅咒或类似的东西进行链接。
目前我使用
清除屏幕#ifdef __WIN32
system( "cls" );
#else
system( "clear" );
#endif
然后我有一堆printf语句来更新状态。我只想将screenpointer重置为0,0所以我可以覆盖我的printfs。我宁愿避免编译任何更多的扩展,特别是因为我正在编写2个不同的操作系统。
答案 0 :(得分:1)
对于类Unix平台,通常的方法是使用curses库。
答案 1 :(得分:0)
看起来我可能找到了一种特定于Windows的方式SetConsoleCursorPosition
Ansi转义序列\ 033 [0; 0H for Linux - 只需打印到控制台。
答案 2 :(得分:0)
是的,对于unix平台,诅咒(或者ncurses,这些天)是要走的路。并且有些版本可以在Windows下运行,因此您可以在两个系统上以相同的方式执行此操作。
答案 3 :(得分:0)
对于Windows - 您可以使用ANSI转义字符。
http://www.lexipixel.com/news/star_dot_star/using_ansi_escape_sequences.htm
http://www.robvanderwoude.com/ansi.html
printf "\x[0;0H"
以前需要先装载Ansi.sys才能完成此操作,但值得一试。
添加ANSI支持的说明 http://www.windowsnetworking.com/kbase/WindowsTips/WindowsXP/UserTips/CommandPrompt/CommandInterpreterAnsiSupport.html 注意:Ansi.sys仅适用于command.com。您不能将它与cmd.exe一起使用