我已經嘗試了很多辦法,比如如何在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標籤。 –