可以在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)
}

07-24 22:10