我正在尝试从标准输入读取输入,就像这样:
3 2 1<ENTER>
并将其保存在一个整数列表中。目前我的代码如下:
nums = make([]int, 0)
var i int
for {
_, err := fmt.Scan(&i)
if err != nil {
if err==io.EOF { break }
log.Fatal(err)
}
nums = append(nums, i)
}
目前程序始终停留在for循环中。我在文档中找不到检查换行符的简单方法。我该怎么做?
编辑:
由于我知道几乎肯定会有四个数字,所以我尝试了以下操作:
var i0,i1,i2,i3 int
fmt.Scanf("%d %d %d %d\n", &i0, &i1, &i2, &i3)
但是这个程序只扫描了第一个数字然后就退出了。我不确定这是否是因为我使用的z-shell导致的。
编辑:
为了澄清,该程序会暂停并要求用户输入由空格分隔并以换行符终止的n个数字列表。这些数字应存储在一个数组中。
Ctrl+D
会向您的程序发送 EOF。 - kostya