我已经尝试了很多办法,比如如何在Windows中使用golang清除控制台?
package main
import (
"os"
"os/exec"
)
func main() {
c := exec.Command("cls")
c.Stdout = os.Stdout
c.Run()
}
和
C.system(C.CString("cls"))
而且转义序列无法正常工作或
我已经尝试了很多办法,比如如何在Windows中使用golang清除控制台?
package main
import (
"os"
"os/exec"
)
func main() {
c := exec.Command("cls")
c.Stdout = os.Stdout
c.Run()
}
和
C.system(C.CString("cls"))
而且转义序列无法正常工作或
所有你需要的是:
package main
import (
"os"
"os/exec"
)
func main() {
cmd := exec.Command("cmd", "/c", "cls")
cmd.Stdout = os.Stdout
cmd.Run()
}
看起来很奇怪,但你的代码只能在windows中工作。为什么我们应该用“cls”参数来调用“cmd”,而不是直接调用“cls”。无论如何,非常感谢。 –
原因是“cls”是进入DOS“shell”的内置命令,而不是独立的可执行文件。因此,当你输入“cls”时,它只会清除运行中的shell的屏幕,但不会运行外部命令。当你运行一个命令时,你直接运行命令而不是通过一个shell。 HTH – ClojureMostly
真的没有简单的方法在做这跨平台的方式使用标准库。
termbox-go
似乎是一个提供跨平台终端控制的库。可能还有其他的,但它是我使用过的唯一一个,它似乎运作良好。
因为这将完全取决于你的操作系统和控制台上,你应该增加你使用什么操作系统。如果Windows看起来像你需要做一个system()调用“cls”,因为“cls”不是可执行文件(这是exec期望的) – ClojureMostly
明白了,我是Stack Overflow的新手。我已经添加了Windows标签。 –