的片段:传递切片SCANF
package main
import "fmt"
func main() {
mapIsh := make([]int64, 5)
fmt.Scanf("%v %v %v %v %v", &mapIsh[0], &mapIsh[1], &mapIsh[2], &mapIsh[3], &mapIsh[4])
fmt.Print(mapIsh[0], mapIsh[1], mapIsh[2], mapIsh[3], mapIsh[4])
}
我箱子片,并要保存读操作的内容。以上工作如预期。我没有得到的是为什么我必须传递指向数组元素的指针(我认为值是通过片/数组的引用传递的)。
此外,如果我不做一个参数指针后续的值不会被读取。所以有人可以解释如下:
输入数据:1 2 3 4 5
1)为:
fmt.Scanf("%v %v %v %v %v", mapIsh[0], mapIsh[1], mapIsh[2], mapIsh[3], mapIsh[4])
我得到:0 0 0 0 0
2)为:
fmt.Scanf("%v %v %v %v %v", &mapIsh[0], &mapIsh[1], mapIsh[2], &mapIsh[3], &mapIsh[4])
我得到:1 2 0 0 0
添加错误检查。在某些情况下,您的示例会产生错误“预期的整数” –
另外,我已经为格式化字符串添加了'\ n',并且错误消失了。 –