bufio 从键盘输入的两种方式
一、bufio.NewScanner(os.Stdin)
接收用户发送的账户密码
func Login() (map[string]string, map[string]string) {
user := map[string]string{}
pass := map[string]string{}
fmt.Println("欢迎光临!")
fmt.Println("请输入用户名:")
LoginUser := bufio.NewScanner(os.Stdin)
if LoginUser.Scan() {
user["userName"] = LoginUser.Text()
} else {
user["userName"] = "输入错误"
}
fmt.Println("请输入登录密码:")
LoginPassword := bufio.NewScanner(os.Stdin)
if LoginPassword.Scan() {
pass["PassWord"] = LoginPassword.Text()
} else {
pass["PassWord"] = "您输入错误"
}
return user,pass
}
注释:
os.Stdin //键盘标准输入
LoginUser.Scan //bool类型,默认为true
LoginUser.Text() //接收的值
如果scanner.Scan()如果出错,错误信息是要通过Err()方法才能得到的,我的go程序将这个Err忽略了,代码补充完整之后看到这样的错误:bufio.Scanner: token too long
二、bufio.NewReader(os.Stdin)
reader := bufio.NewReader(os.Stdin)
str, err := reader.ReadString('\n')
if err == nil {
fmt.Println("输入为:", str)
}
注释:
reader.ReadString('\n') //逐行读取

浙公网安备 33010602011771号