在unix中清除提示符

时间:2013-04-08 03:06:22

标签: c unix command-prompt text-formatting

使用以下代码我将删除提示但不清除屏幕。可能是什么原因?

   printf("\033[7mHello how are you doing? press 'q' to quit\033[0m");
   fflush(stdout);
   ----
   doing some other stuff
   ----

   printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\
           \b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\033[0m");
           fflush(stdout);

我正在删除提示,但它的痕迹出现,直到我输入那么长的东西。

2 个答案:

答案 0 :(得分:1)

printf("\033[2J");这将清除终端屏幕。

我看到你正在使用跳过字符\b,你是否试图将终端光标重置为开头?因为这也可以用这个来完成:
printf("\033[1;1H");

答案 1 :(得分:1)

\b仅移动光标位置,不会删除提示。

擦除为每个退格键写一个空格。

char * hello = "\033[7mHello how are you doing? press 'q' to quit\033[0m" ;
int len = strlen( hello ) ;
for( int i = 0 ; i < len ; i++ )
{
    printf("\b \b");
}