我正在用 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;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)