go入门之像cpp一样输入效果
在hackerrank上面练习的时候,被读到eof难住了,故总结一下;
学习一下fmt和bufio.
读一整行
cpp:
1 2 3 4 5 6
| gets(s); 读到eof for(; gets(s);){ }
|
go:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| func main() { scanner := bufio.NewScanner(os.Stdin) scanner.Scan() fmt.Println(scanner.Text()) for scanner.Scan() { fmt.Println(scanner.Text()) } } func main() { reader := bufio.NewReader(os.Stdin) a, b, err := reader.ReadLine() if err == nil { fmt.Println(string(a), b) } for { a, b, err := reader.ReadLine() if err != nil { break } fmt.Println(string(a), b) } }
|
自定义读到EOF
cpp:
1 2 3
| for(; ~scanf("xxx");){ }
|
go:
1 2 3 4 5 6 7 8 9 10
| func main(){ var a string var b int for { n, err := fmt.Scan(&a, &b) if err != nil || 2 != n { break } fmt.Println(a, b) }
|