打印到终端而不滚动

Printing out to terminal without it scrolling

本文关键字:滚动 终端 打印      更新时间:2023-10-16

所以我想知道如何做到这一点已经有一段时间了,我想问So社区谁更好。

如果这有点含糊,我提前道歉,但我会尽我所能让大家理解我的问题。

我们都记得第一次用print语句陷入无限循环。终端很快就满了,很快你就会看到一堆滚动的文本。。。

如何使其不滚动?我的意思是。。。如何覆盖已写入的行。

如何使用一行打印语句(不超过一行新行)使我的无限循环只打印在一行上。终端不滚动的地方。

Instead of ....
    This is an infinite loop
    This is an infinite loop
    This is an infinite loop
You just have one line that updates every iteration of the loop.
    This is an infinite loop

感谢您的阅读,评论如果这做了绝对没有。我会努力澄清在一个多云的世界。。。

PS-我现在做的是C语言,但知道如何用其他语言做这件事不会有什么坏处。

问题(0.1)

如果您想更新多个行,该怎么办

printf("This is some textn");
printf("This is more textn");

这会给我两行,我想更新这两行,但不想滚动。

您只需要回车,而不需要换行,因此只需要使用"\r"回车意味着将光标移回到行的开头。线路馈电是指向终端馈电一条新线路。

在c:

while(1)
{
   printf("r This is an infinite loop.");
}

由于printf是缓冲的,因此显式刷新输出流是一种很好的做法。

您可以使用回车转义序列或r。这将使光标返回到行的开头。

while (1)
{
    std::cout << "rTest.";
}

试试这个。。。

while(1)
{
  printf("this id infinite loopn");
  sleep(1);
  system("clear");
}