c++ - 如何在 C++ 中将光标位置设置为行首?

标签 c++ linux

所以我正在尝试编写代码的一部分,在其中写入一些内容,然后覆盖它。像这样:

10 seconds have passed
11 seconds have passed
12 seconds have passed

不用换行打印。所以我不想使用这样的东西:

std::cout<<"10 seconds have passed\n"
std::cout<<"11 seconds have passed\n"

我该怎么做?我正在运行 Kubuntu Linux

最佳答案

这就是回车符的用途:\r。它以打字机的机制命名,将纸架返回右侧,以便打字员可以从一行的开头继续打字。试试这个:

std::cout << "10 seconds have passed";
std::cout << "\r11";

当然,如果两者之间没有延迟(除了可能等待 I/O),您不太可能看到变化,但您至少会看到 11 秒后的输出 10 无处可见。

如何显示回车完全取决于你输出到什么,但这是它的意图。有关更复杂的跨平台终端输出,请查看 ncurses .

关于c++ - 如何在 C++ 中将光标位置设置为行首?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13572545/

相关文章:

c++ - 如何将矩阵因式分解为核矩阵的乘积?

c++ - Clion:如何正确地将图像、xml、资源...添加到 cmake

linux - puppet 覆盖模块上的文件资源

linux - 为什么这个 oneliner 会给我一个错误?

linux - 如何重命名目录中的所有文件并添加前缀

linux - 如何关闭python "sh"库的打印结果

c++ - 如何将字符串指针的动态数组从 C++ 传递给 C 函数

c++ - 当我尝试编译程序时,出现了一堆错误,例如 :'std::max' : no matching overloaded function found

c++ - 将具有用户定义的构造函数的类填充到 union 中

linux - Linux内核中浮点的使用