Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在windows中使用golang如何清除控制台?_Windows_Go - Fatal编程技术网

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

在windows中使用golang如何清除控制台?,windows,go,Windows,Go,我试过很多方法,比如 package main import ( "os" "os/exec" ) func main() { c := exec.Command("cls") c.Stdout = os.Stdout c.Run() } 及 而且转义序列也不起作用使用标准库以跨平台的方式实现这一点确实不容易 似乎是一个提供跨平台终端控制的库。可能还有其他的,但这是我用过的唯一一个,而且似乎效果很好 使用termbox go清除控制台需要先执行a,然

我试过很多方法,比如

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

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


而且转义序列也不起作用

使用标准库以跨平台的方式实现这一点确实不容易

似乎是一个提供跨平台终端控制的库。可能还有其他的,但这是我用过的唯一一个,而且似乎效果很好

使用
termbox go
清除控制台需要先执行a,然后执行a

有关更多详细信息,请参阅。

您只需要:

package main

import (
"os"
"os/exec"
)

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

对于linux和mac,以防有人需要:

fmt.Println("\033[2J")

如果你看操场,你可以看到他们是如何通过一个特定的指令清除终点站的:

//第110行
格式打印(“\x0c”,l)

因为这完全取决于您的操作系统和控制台,所以您应该添加您正在使用的操作系统。如果windows看起来需要对“cls”执行system()调用,因为“cls”不是可执行文件(这是exec所期望的),那么我是堆栈溢出的新手。我添加了windows标签。这看起来很奇怪,但你的代码只能在windows中运行。为什么我们要用“cls”参数调用“cmd”,而不是直接调用“cls”。无论如何,非常感谢。原因是“cls”是DOS“shell”中的内置命令,而不是独立的可执行文件。因此,当您键入“cls”时,它只会清除正在运行的shell的屏幕,而不会运行外部命令。在go中运行命令时,直接运行命令,而不是通过shell。HTH您将如何为nix系统执行此操作?
fmt.Println("\033[2J")