当前位置: 首页 > 面试题库 >

如何拥有在标准输出上更新的就地字符串

柯默
2023-03-14
问题内容

我想输出到stdout并让输出“覆盖”先前的输出。

例如; 如果我输出On 1/10,我希望下一个输出On 2/10覆盖On 1/10。我怎样才能做到这一点?


问题答案:

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

因此正确的方法是首先检查:

  • 如果stdout要去终端
  • 该终端覆盖行/屏幕的html" target="_blank">程序是什么

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

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

将覆盖终端中的前一行。\r代表carriage return,由许多终端实现,将光标移动到当前行的开头,因此提供了“覆盖行”功能。

作为具有不同支持的“覆盖”的“其他”终端的示例,这里是操场上的示例。



 类似资料:
  • 问题内容: 例如,在Python中,我可以执行以下操作: 您可以在Go中执行此操作吗? 问题答案: 我同意,只要可以管理,就应该使用这些功能。但是,如果您不控制要捕获其输出的代码,则可能没有该选项。 Mostafa的答案有效,但是如果您想在没有临时文件的情况下进行操作,则可以使用os.Pipe。这是一个与Mostafa等效的示例,其中一些代码受Go的测试包的启发。

  • 问题内容: 我使用Java程序从网站下载文件,标题如下所示 没有指定编码 我要做的是下载后将文件名传递给另一个应用程序以进行进一步处理。我用 在标准输出中,字符串打印为 如何在Java中将标准输出更改为“ UTF-8”? 我尝试编码为“ UTF-8”,但内容仍然相同 更新: 我无需进行任何代码更改即可解决此问题。在我从其他应用程序将此文件称为我的jar文件的地方,我执行了以下操作 这似乎已经解决了

  • 我是Java的初学者。学习罗伯特·塞奇威克的《Java导论》 我尝试在Netbeans中编译以下代码。 } 我收到了这个错误。我已将文件放置在标准位置。java 线程“main”java.lang.RuntimeException中的异常:无法编译的源代码-错误的sym类型:示例。StdIn.is在示例中为空。verage.main(verage.java:16)Java结果:1 BUILD SU

  • 问题内容: 我有一个正在运行并使用的脚本 这返回 我想要内联最后四个字符,这样 问题答案: 怎么样,用开关。例如,要获取“ hello”的最后四个字符: 请注意,我使用5(4 + 1),因为会添加一个换行符。如下面的Brad Koch所建议,请使用来防止添加换行符。

  • 我正在用Minikube在库伯内特斯运行一个红宝石应用程序。 然而,每当我查看日志时,我都看不到在本地运行应用程序时在终端中看到的输出。 我想这是因为它只显示stderr? 如何查看所有类型的控制台日志(例如,从或)? 环顾四周,这与它处于分离模式有关吗?请参阅与Python相关的问题:Kubernetes Pod中的日志未显示 谢谢 = 根据要求-这是deployment.yaml

  • 和之前 inputs/stdin 插件一样,outputs/stdout 插件也是最基础和简单的输出插件。同样在这里简单介绍一下,作为输出插件的一个共性了解。 配置示例 output { stdout { codec => rubydebug workers => 2 } } 解释 输出插件统一具有一个参数是 workers。Logstash 为输