可以在Go中获得端子宽度吗?
我尝试将http://github.com/nsf/termbox-go与代码一起使用:
package main
import (
"fmt"
"github.com/nsf/termbox-go"
)
func main() {
fmt.Println(termbox.Size())
}
但是它会打印
0 0
。我也尝试过http://github.com/buger/goterm,但是当我尝试
go get
时,出现错误:$ go get github.com/buger/goterm
# github.com/buger/goterm
..\..\buger\goterm\terminal.go:78: undefined: syscall.SYS_IOCTL
..\..\buger\goterm\terminal.go:82: not enough arguments in call to syscall.Syscall
关于如何获得端子宽度的其他想法?
最佳答案
您需要先调用termbox.Init()
,然后再调用termbox.Size()
,完成后再调用termbox.Close()
。
package main
import (
"fmt"
"github.com/nsf/termbox-go"
)
func main() {
if err := termbox.Init(); err != nil {
panic(err)
}
w, h := termbox.Size()
termbox.Close()
fmt.Println(w, h)
}