【发布时间】:2014-12-27 20:00:48
【问题描述】:
输出中的2 来自哪里?
我编写了一个从 STDIN 读取并将值返回到 STDOUT 的程序。
package main
import "fmt"
func main() {
var steps, i, a, b int
fmt.Scanf("%d", &steps)
for i = 0; i <= steps; i++ {
fmt.Scanf("%d", &a)
fmt.Scanf("%d", &b)
fmt.Println(a + b)
}
}
我有一个输入文件
2
2 5
4 8
当我使用go run program.go < input 运行程序时,我得到:
2
7
12
代替:
7
12
为什么?
【问题讨论】:
-
如果我用
<=修复错误,我会得到预期的输出。 -
你能粘贴你的代码吗?修复后
i < steps我得到2 7但没有12 -
嗯,它只是你的代码和输入文件的副本。
-
我注意到这个格式更明确的代码可以正常工作,但我无法解释为什么你的代码不能按预期工作,所以我不会回答:play.golang.org/p/BGEa9zns3Y
标签: loops syntax go stdout stdin