gpt4 book ai didi

go - 如何在标准输出上更新就地字符串

转载 作者:IT老高 更新时间:2023-10-28 12:59:04 25 4
gpt4 key购买 nike

我想输出到标准输出并让输出“覆盖”之前的输出。

例如;如果我输出 On 1/10,我希望下一个输出 On 2/10 覆盖 On 1/10。我该怎么做?

最佳答案

stdout 是一个流 (io.Writer)。您无法修改已写入的内容。 可以改变的是该流在打印到终端时的表示方式。请注意,没有充分的理由假设这种情况。例如,用户可以随意将标准输出重定向到管道或文件。

所以正确的做法是先检查:

  • 如果标准输出将发送到终端
  • 该终端覆盖一行/屏幕的过程是什么

以上两个都超出了这个问题的范围,但我们假设终端是我们的设备。然后通常,打印:

fmt.Printf("\rOn %d/10", i)

将覆盖终端中的上一行。 \r 代表回车,许多终端都将光标移动到当前行的开头,因此提供了“覆盖行”功能。

作为具有不同支持“覆盖”的“其他”终端的示例,这里是 playground 中的示例.

关于go - 如何在标准输出上更新就地字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15442292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com