Go 语言文件操作:读取用户的输入
使用 golang 读取用户的输入有以下几种办法#
1 使用 bufio 包#
基本思路就是使用 bufio.NewReader 将新建一个标准输入的 buffer,获取到 buffer 句柄就可以,使用 Reader 所绑定的方法去获取用户输入
代码示例#
func main() {
//创建一个用户输入的buffer
inputBuff := bufio.NewReader(os.Stdin)
//循环读取用户输入
for {
userInput, err := inputBuff.ReadString('\n')
if nil != err {
log.Println(err)
return
}
fmt.Println("用户输入:", userInput[:len(userInput)-1])
if userInput == "break" {
break
}
}
log.Println("exit...")
}
运行结果#
PS D:\GoPractice\mping> go run .\main.go
hello
用户输入: hello
world
用户输入: world
hello world
用户输入: hello world
break
#这里没有退出循环,是由于代码中userInput的值是break\n,所以没有退出
用户输入: break
2 使用 fmt 包#
可以使用 fmt.Scan, fmt.Scanf, fmt.Scanln, 不过使用过程中有所限制,可以根据需求使用,例子以 fmt.Scanf 来演示
代码示例#
func main() {
//循环获取用户输入
for {
userInput := ""
fmt.Scanf("%s", &userInput)
fmt.Println("1用户输入:", userInput)
}
}
运行结果#
#从运行结果上来看,可以看出用fmt.Scanf来获取字串,是以空白字符来分割
PS D:\GoPractice\mping> go run .\main.go
hello
1用户输入: hello
1用户输入:
hello world
1用户输入: hello
1用户输入: world
1用户输入:
结尾#
可能还有更多办法,但是笔者暂时没有去深度探究,这里的两种是笔者之前学习 go 语言的时候掌握,这里提了个大概,有兴趣的小伙伴后续可以继续补充。
推荐文章: