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')   //逐行读取

posted @ 2022-09-21 21:14  南昌拌粉的成长  阅读(73)  评论(0编辑  收藏  举报