func main() {
var a, b, c int
for i := 0; i < 2; i++ {
fmt.Scanf("%d,%d,%d", &a, &b, &c)
fmt.Println(a, b, c)
}
}
这段代码,我只输入一次,为什么会有两次输出结果?
输入:1,2,3
输出结果为:
1 2 3
1 2 3
func main() {
var a, b, c int
for i := 0; i < 2; i++ {
fmt.Scanf("%d,%d,%d", &a, &b, &c)
fmt.Println(a, b, c)
}
}
这段代码,我只输入一次,为什么会有两次输出结果?
输入:1,2,3
输出结果为:
1 2 3
1 2 3
2 回答2.4k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答1.2k 阅读
1 回答1.8k 阅读
我在windows上测试过。猜测你可能是输入1,2,3加上了回车,1,2,3被第一次循环的
fmt.Scanf
读取了,第二次循环,fmt.Scanf
读到你的enter就认为输入结束了,所以输出了两次1 2 3。有两种解决方案:2.将
fmt.Scanf
格式符改为fmt.Scanf("%d,%d,%d\n", &a,&b,&c)
即将格式符后面加上\n
,强制要求每次输入带上回车。