c++ - 如何在多行中使用回车?

标签 c++ carriage-return

当我想在同一行中打印出另一个文本时,我可以这样做:

int i = 0;
string text = "Paragraph ";
while (i < 10) {
    if (clock() % CLOCKS_PER_SEC == 0) {
        cout << text << i + 1 << "\r";
        cout.flush();
        i++;
    }
}

但是,我怎样才能用多行来做到这一点?我想将一个段落作为一个整体保留在终端的初始位置。如果我将 text 更改为包含带有一些换行符的段落的字符串,它会在最后打印的段落下方打印另一个新段落 block 。

如何保持它的位置?

最佳答案

你的问题不是很清楚,但我假设你想知道如何覆盖当前行以外的地方的文本。

标准 C++ 不提供此功能。您将不得不使用特定于操作系统的功能将光标放置在控制台的任意位置。

在类 Unix 系统下,您通常会使用 ANSI escape sequences

在 Windows 下,您最好使用控制台操作函数,尤其是 SetConsoleCursorPosition .看here更多控制台功能。

关于c++ - 如何在多行中使用回车?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29344362/

相关文章:

ios - Swift 字符串中的换行符和/或回车符

c++ - 如何为虚函数设置对齐方式?

c++ - 平面和球体光线追踪的交集

带有模板编译错误的 C++ 类

bash - 为什么正确的 shell 脚本会给出包装/截断/损坏的错误消息?

bash - xclip 和尾随空格

crontab 添加回车符

c++ - 遗传算法的选择机制

c# - 在 C++ 中部署 GBM 模型 |让 Predict.gbm 在 R 之外工作

java - 测试java中看不见的字符