C++控制台设置滚动输出

前言

在写C++控制台程序时,我们可能会给程序添加进度条,也就是要程序在同一行反复输出,可以用特殊字符实现。

例子

在Windows下

1
2
3
4
5
6
7
8
for (int i = 0; i != 10; ++i)
{
sleep(5); // do something

printf("\r");
fflush(stdout);
printf("i = %d", i);
}

在Linux下

1
2
3
4
5
6
7
8
for (int i = 0; i != 10; ++i)
{
sleep(5); // do something

printf("\r\033[k");
fflush(stdout);
printf("i = %d", i);
}

总结

在这里写一个函数setScrollOutput()来实现这一过程:

1
2
3
4
5
6
7
8
9
inline void setScrollOutput()
{
#ifdef _WIN32
printf("\r");
#else
printf("\r\033[k");
#endif // _WIN32
fflush(stdout);
}

使用过程如下:

1
2
3
4
5
6
7
for (int i = 0; i != 10; ++i)
{
sleep(5); // do something

setScrollOutput();
printf("i = %d", i);
}

C++控制台设置滚动输出
https://ting2938.github.io/程序设计/C++/C-控制台设置滚动输出/
作者
TING2938
发布于
2020年5月19日
许可协议