我正在尝试制作一个加载屏幕,其中包含由这些字符组成的圆圈:/ - | \ 所以它将输出如下:
|
/
-
\
|
/
-
\
但不是只输出它,我想知道如何在定时间隔中替换前一个字符。谢谢!
答案 0 :(得分:1)
最简单的方法是使用\r
。这只适用于单行。
#include <iostream>
#include <chrono>
#include <thread>
using namespace std::literals;
int main() {
static const std::string sequence = "|/-\\";
auto duration = 5s;
auto duration_step = 250ms;
for (auto i = 0; i < (duration/duration_step); ++i) {
std::cout << "\r" << sequence[i%sequence.size()] << std::flush;
std::this_thread::sleep_for(duration_step);
}
return 0;
}
更高级的行为需要一个库(例如ncurses
)和更多的工作,尤其是初学者。