重置屏幕指向Windows和Windows中的屏幕顶部Linux控制台

时间:2008-09-11 11:39:15

标签: c console

我有一个小例程,它运行在用C语言编写的Linux和Windows下,并在控制台上显示输出。我没有用任何形式的诅咒或类似的东西进行链接。

目前我使用

清除屏幕
#ifdef __WIN32
  system( "cls" );
#else
  system( "clear" );
#endif

然后我有一堆printf语句来更新状态。我只想将screenpointer重置为0,0所以我可以覆盖我的printfs。我宁愿避免编译任何更多的扩展,特别是因为我正在编写2个不同的操作系统。

4 个答案:

答案 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一起使用