red*_*maj 4 c++ loops carriage-return
我在网上看过这个关于加载效果的回车示例,但我没有正确理解它。为什么它必须是 2\rLoading
而不是 1?有人可以向我解释一下吗?
for (int j = 0; j < 3; j++) {
cout << "\rLoading \rLoading";
for (int i = 0; i < 3; i++) {
cout << ".";
sleep(300);
}
}
Run Code Online (Sandbox Code Playgroud)
第一部分
\rLoading____
Run Code Online (Sandbox Code Playgroud)
打印为在行的开头有字符串“Loading”和三个空格。下一个回车然后将光标设置到行的开头。然后
Loading
Run Code Online (Sandbox Code Playgroud)
再次打印,但光标现在直接在单词后面,三个空格中的第一个。现在在这里:
for (int i = 0; i < 3; i++) {
cout << ".";
sleep(300);
}
Run Code Online (Sandbox Code Playgroud)
三个点以 300 秒的间隔打印到三个点所在的位置。
整个过程迭代了 3 次,所以第一个“加载”的三个空白的主要目的是删除前一次迭代中的点。