如何在Go中等待命令行输入

时间:2013-09-21 19:23:46

标签: go

我想显示一个“>”,然后让程序等待用户在命令行中键入内容并按Enter键(并最终将其存储为字节切片)。在Java中,我会做类似的事情:

Scanner scanner = new Scanner(System.in);

System.out.print("> ");
String sentence = scanner.nextLine();

我尝试过涉及os.Args, console.ReadBytes('\n')bufio.NewReader(os.Stdin)的一些事情,但我还是没有弄明白。任何建议将不胜感激。感谢。

1 个答案:

答案 0 :(得分:6)

一些Go代码可能会有所帮助,所以我可以告诉你你做错了什么。但是你可以在Go中这样做:

package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    buf := bufio.NewReader(os.Stdin)
    fmt.Print("> ")
    sentence, err := buf.ReadBytes('\n')
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(string(sentence))
    }
}