知表不言 发表于 2017-8-1 19:58:20

C语言中sleep()和'\b'的问题

下面这段代码只有最下面的\b换成\n时(去掉注释)才会正常显示
如果直接就这样编译,程序会在执行开始3秒后一次性输出123然后结束
如果去掉退格键的注释标志,程序会在3秒后直接结束
这个还如何改进才能达到顺序输出1消失2消失3消失呢?
#include <stdio.h>
#include <unistd.h>

int main()
{
        for(int i = 0; i < 3; i++)
        {
                printf("%d", i+1);
                sleep(1);
//                usleep(300000);
//                printf("\b");
        }
        return 0;
}

知表不言 发表于 2017-8-1 19:58:57

在Linux环境中

知表不言 发表于 2017-8-1 22:49:23

已解决,在第一个printf ()后面紧跟一个fflush (stdout);即可。
以前在哪看到Linux下GCC编译器无法用fflush(stdin)清除输入缓冲区,没想到还能这么用
页: [1]
查看完整版本: C语言中sleep()和'\b'的问题