我正在嘗試編寫一個簡單的程序,從終端讀取用戶對某些問題的一些答案。例如,查詢是: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個贊
ReadString 讀取直到輸入中第一次出現 delim ,返回一個包含數據的字符串,直到并包括 delimiter。
從返回的值ReadString
包括\n
最后。
- 1 回答
- 0 關注
- 142 瀏覽
添加回答
舉報
0/150
提交
取消