使用以下代码我将删除提示但不清除屏幕。可能是什么原因?
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);
我正在删除提示,但它的痕迹出现,直到我输入那么长的东西。
答案 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");
}