在Golang中使用bufio来清空所有文本的一行

时间:2017-10-16 07:49:06

标签: go

我正在使用bufio,我想删除一行。我现在遇到的问题是我需要用空格覆盖它并且感觉编程不安全。如果有一种惯用的方式来清除Stdout中的一行?

var Output *bufio.Writer = bufio.NewWriter(os.Stdout)

func MoveCursor(x int, y int) {
    fmt.Fprintf(Output, "\033[%d;%dH", y, x)
}

func Print(a ...interface{}) (n int, err error) {
    return fmt.Fprint(Output, a...)
}

Output.Flush()
scanner := bufio.NewScanner(os.Stdin)
const BLANK = "                                                      "

for {
    MoveCursor(1, 1)
    Print(BLANK)
    MoveCursor(1, 1)
    Print("Hello ", scanner.Text())
    MoveCursor(1, 4)
    Print(BLANK)
    MoveCursor(1, 4)
    Print("> ")
    Output.Flush()
    scanner.Scan()
}

有一件事特别令人惊讶的是,Output.Flush()并没有清除整个屏幕内容。

0 个答案:

没有答案