有两个程序,它们得到不同的结果,但我不明白为什么。
这是第一个:
int main()
{
printf("12345");
fflush(stdout);
printf("\b\b");
fflush(stdout);
return 0;
}
结果是:123
。
然后是第二个:
int main()
{
printf("12345");
fflush(stdout);
sleep(1);
printf("\b\b");
fflush(stdout);
return 0;
}
但结果是:12345
.
当我期望“123”结果时,为什么 sleep 调用会使第二个结果不同?
该代码在 CLion 中运行。
如果重要的话,我的操作系统是 macOS。
根据终端的不同,'\b'
可能会“删除”一个字符或仅将光标向左移动。要获得万无一失的解决方案,请使用:
#include <unistd.h>
#include <stdio.h>
int main(void)
{
printf("12345");
fflush(stdout);
sleep(1);
printf("\b\b \b\b");
fflush(stdout);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)