当我想在同一行中打印出另一文本时,可以这样做:
int i = 0;
string text = "Paragraph ";
while (i < 10) {
if (clock() % CLOCKS_PER_SEC == 0) {
cout << text << i + 1 << "\r";
cout.flush();
i++;
}
}
但是,我如何使用多行来做到这一点?我想将整个段落保留在终端的初始位置。如果我更改text
了包含带有一些换行符的段落的字符串,它将在最后打印的段落下面打印另一个新的段落块。
我该如何保留自己的位置?
您的问题不是很清楚,但是我将假设您想知道如何在当前行以外的地方覆盖文本。
标准C ++没有提供此功能。您将必须使用特定于OS的功能才能将光标放置在控制台的任意位置。
在类Unix系统下,通常会使用ANSI转义序列
在Windows下,最好通过控制台操作功能(尤其是SetConsoleCursorPosition)来提供服务。看看这里为更多的控制台功能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句