使用fmt.Sca接收输入·下面是个小例子·就像你平时聊天一样输入什么就直接接收到什么
一、使用fmt.Scan接收输入
在Go语言里,用fmt.Scan接收键盘输入超简单!就像你平时聊天一样,输入什么就直接接收到什么。下面是个小例子:
```go package main import "fmt" func main() { var input string fmt.Scan(&input) fmt.Println("你输入的是:", input) } ``` 在这个例子中,`fmt.Scan`会等着你输入,然后把你输入的东西存到`input`变量里。如果你要一次性读取多个值,`fmt.Scan`也能搞定:
```go package main import "fmt" func main() { var name, age string fmt.Scan(&name, &age) fmt.Println("你的名字是:", name, ",年龄是:", age) } ```二、使用bufio.NewReader读取整行输入
有时候,你可能想读取一整行的输入,包括空格和换行符。这时候,`bufio.NewReader`就派上用场了:
```go package main import ( "bufio" "fmt" "os" ) func main() { reader := bufio.NewReader(os.Stdin) input, err := reader.ReadString('\n') if err != nil { fmt.Println("读取输入时发生错误:", err) return } fmt.Println("你输入的是:", input) } ``` `bufio.NewReader`会读取整行输入,包括空格和换行符,而`ReadString`函数会停止读取直到遇到指定的分隔符(在这个例子中是换行符)。三、使用os.Stdin.Read读取输入
如果你需要对输入的字节进行更底层的操作,比如精确控制输入输出,那么`os.Stdin.Read`可能更适合你:
```go package main import ( "fmt" "os" ) func main() { var input [128]byte n, err := os.Stdin.Read(input[:]) if err != nil { fmt.Println("读取输入时发生错误:", err) return } input = input[:n] // 截取实际读取的字节 fmt.Println("你输入的是:", string(input[:n])) } ``` 在这个例子中,`os.Stdin.Read`会读取最多128个字节,并将其存储到`input`数组中。这样,你就可以直接操作这些字节了。从键盘接收输入在Go语言中有很多方法,包括`fmt.Scan`、`bufio.NewReader`和`os.Stdin.Read`。`fmt.Scan`是最简单的,适合日常使用;而`bufio.NewReader`和`os.Stdin.Read`则提供了更多灵活性,适合更复杂的场景。根据你的具体需求来选择合适的方法吧!