gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 22:40:44 25 4
gpt4 key购买 nike

我试图编写一个简单的程序来从终端读取用户对某些问题的答案,例如查询是:

5+5
1+2
8+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子句中却不起作用!

最佳答案

bufio.Reader.ReadString :

ReadString读取直到输入中第一次出现delim为止,返回一个字符串,该字符串包含直至和的数据,包括定界符

ReadString返回的值最后包括\n

关于go - 用bufio和scanf读取相同的输入有不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59722773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com