Я пытался написать простую программу, которая читает некоторые ответы из терминала от пользователя на некоторые вопросы. Например, запросы:
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 он не работает!