3 回答

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
我將通過(guò)在每次失敗后讀取直到行尾來(lái)解決此問(wèn)題。這將清除其余的文本。
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
stdin := bufio.NewReader(os.Stdin)
fmt.Println("Please enter an integer: ")
var userI int
for {
_, err := fmt.Fscan(stdin, &userI)
if err == nil {
break
}
stdin.ReadString('\n')
fmt.Println("Sorry, invalid input. Please enter an integer: ")
}
fmt.Println(userI)
}

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
我知道這已經(jīng)得到回答,但這是我的實(shí)現(xiàn):
func flush (reader *bufio.Reader) {
var i int
for i = 0; i < reader.Buffered(); i++ {
reader.ReadByte()
}
}
這應(yīng)該在每種情況下都適用,包括無(wú)法使用“ stdin.ReadString('\ n')”的情況。
- 3 回答
- 0 關(guān)注
- 262 瀏覽
添加回答
舉報(bào)