如何在Windows中使用golang清除控制台?

Ply*_*_py 7 windows go

我尝试了很多方法,比如

package main 
import (
    "os"
    "os/exec"
)

func main() {
    c := exec.Command("cls")
    c.Stdout = os.Stdout
    c.Run()
}
Run Code Online (Sandbox Code Playgroud)

C.system(C.CString("cls"))
Run Code Online (Sandbox Code Playgroud)

并且转义序列也不起作用

Int*_*net 11

使用标准库以跨平台方式实现这一点真的没有简单的方法.

termbox-go似乎是一个提供跨平台终端控制的库.可能有其他人,但它是我使用的唯一一个,它似乎运作良好.

清除控制台使用termbox-go将是一个做a Clear然后a Flush.

有关详细信息,请参阅http://godoc.org/github.com/nsf/termbox-go.


Bab*_*aba 9

所有你需要的是 :

package main

import (
"os"
"os/exec"
)

func main() {
    cmd := exec.Command("cmd", "/c", "cls")
    cmd.Stdout = os.Stdout
    cmd.Run()
}
Run Code Online (Sandbox Code Playgroud)

  • 原因是"cls"是DOS"shell"中的内置命令,而不是独立的可执行文件.因此,当您键入"cls"时,它只会清除正在运行的shell的屏幕,但从不运行外部命令.当您运行命令时,您直接运行命令而不是通过shell运行命令.HTH (2认同)