我是 golang 的新手,已经从 python 切换了。我正在尝试扫描一个数组并将其显示给用户。但是,如果有任何尾随空格,则 go 不会等待用户输入下一个 int(就像在 c++ 中发生的那样),而是使用零。
func main() {
var k int
fmt.Scanf("%d", &k)
for i:= 0 ; i< k ; i++{
arr(5)
}
}
func arr(l int){
arr:= make([]int, l)
for i := 0; i < l; i++ {
fmt.Scanf("%d",&arr[i])
}
fmt.Println(arr)
}
这是我的代码,所以当我输入
1_
1_2_3_4_5_ 其中下划线表示将打印出来的黑色空间
[0 1 2 3 4]
预期的结果是
[1 2 3 4 5]
我的代码有问题吗?或者这就是 Scanf() 函数的工作方式,如果是这样,我应该使用什么以便它类似于 c++ scanf() 的工作方式?我试图了解为什么我自己会发生这种情况并遇到缓冲区,但我不明白这里的图片是如何出现的。
慕娘9325324
相关分类