我正在用 C++ 编写一个控制台应用程序,我需要使用 ASCII 字符制作类似于“loading.gif”的东西。
以下是我应该使用的字符列表:
- --
- \
- |
- /
- --
这些符号会循环播放加载动画。
但是,当我写输出时,它变成了这样:
输出行 1: -- 输出第2行:\ 输出第 3 行: | 输出第4行:/ 输出第5行: --
我需要这样做:
输出第 1 行: [这将一直被替换]
它不应该到第二行。
我如何在 C++ 中执行此操作?有什么replace功能吗?
最佳答案
您可以使用退格字符 ('\b'
) 返回并覆盖控制台上的字符。您还需要在每次更改后刷新输出,否则输出可能会保留在缓冲区中而不会出现在控制台上。
这是一个简单的例子:
#include <iostream>
#include <unistd.h> // for sleep()
int main()
{
std::cout << '-' << std::flush;
for (;;) {
sleep(1);
std::cout << "\b\\" << std::flush;
sleep(1);
std::cout << "\b|" << std::flush;
sleep(1);
std::cout << "\b/" << std::flush;
sleep(1);
std::cout << "\b-" << std::flush;
}
}
关于c++ - 如何在用 C++ 编写的控制台应用程序中制作加载动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8486181/