【发布时间】:2019-05-12 21:56:13
【问题描述】:
我正在遍历一个数组并将每个数组元素的格式化字符串打印到终端(stdout)。我不想在新行上打印每个元素,而是想用程序的最新输出覆盖以前的输出。
我正在使用 macOS。
我尝试了几种方法:
// 'f' is the current element of the array
b := bytes.NewBufferString("")
if err != nil {
fmt.Printf("\rCould not retrieve file info for %s\n", f)
b.Reset()
} else {
fmt.Printf("\rRetrieved %s\n", f)
b.Reset()
}
第二种方法是从字符串中删除\r,并在每个输出之前添加额外的Printf:fmt.Printf("\033[0;0H")。
【问题讨论】:
-
如果从字符串末尾删除'\n'会发生什么?
-
我删除了\n。奇怪的是,在某些行上,stdout 被覆盖了,但在大多数情况下它仍然无法正常工作。我还从字节包中删除了代码。似乎不再需要了。