RosettaCodeData/Task/Keyboard-input-Flush-the-keyboard-buffer/Go/keyboard-input-flush-the-keyboard-buffer-2.go
2023-07-01 13:44:08 -04:00

34 lines
472 B
Go

package main
import (
"bufio"
"fmt"
"os"
)
func main() {
stdin := bufio.NewReader(os.Stdin)
fmt.Println("Please enter an integer: ")
var i1 int
for {
_, err := fmt.Fscan(stdin, &i1)
if err == nil {
break
}
stdin.ReadString('\n')
fmt.Println("Sorry, invalid input. Please enter an integer: ")
flush(stdin)
}
fmt.Println(i1)
}
func flush(reader *bufio.Reader) {
var i2 int
for i2 = 0; i2 < reader.Buffered(); i2++ {
reader.ReadByte()
}
}