为了账号安全,请及时绑定邮箱和手机立即绑定

用 bufio 和 scanf 读取相同的输入有不同的结果

用 bufio 和 scanf 读取相同的输入有不同的结果

Go
斯蒂芬大帝 2022-05-05 16:12:54
我正在尝试编写一个简单的程序,从终端读取用户对某些问题的一些答案。例如,查询是:5+51+28+3并且用户应该给出答案。我的问题是,当我使用bufio.ReadString并将输入与真实答案进行比较时,它无法正常工作,但是当我使用 scanf 时一切都很好。这是我的代码://scanner := bufio.NewReader(os.Stdin)    var correctAnswers int8 = 0    for _, pro := range problems {        fmt.Println(pro.question)        //answer,_ := scanner.ReadString('\n')        var idk string        fmt.Scanf("%s\n", &idk)        //print(answer)        println(pro.answer)        if idk == pro.answer {            fmt.Println("Correct :)")            correctAnswers++        } else {            fmt.Println("Sorry!")        }    }    fmt.Printf("You answered %d out of %d problems correctly \n", correctAnswers, len(problems))如您所见,我注释掉了 bufio。有趣的是,当我打印用户给我的答案时,bufio.ReadString 正确地从终端获得了输入,但在 if 子句中它不起作用!
查看完整描述

1 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

bufio.Reader.ReadString

ReadString 读取直到输入中第一次出现 delim ,返回一个包含数据的字符串,直到并包括 delimiter

从返回的值ReadString包括\n最后。


查看完整回答
反对 回复 2022-05-05
  • 1 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号