Golang: lire les entrées de stdin jusqu'à EOF tout en signalant des erreurs de format
nums := make([]int, 0)
{
var d int
for {
_, err := fmt.Scan(&d)
if err != nil {
break
}
nums = append(nums, d)
}
}
Cela fonctionne à lire dans les ints de stdin. Mais si stdin ressemble 1 2 3 f4 5
, nums
sera [1 2 3]
sans signaler toute erreur.
Quelle est la meilleure façon de gérer cela? (C'est à dire, je veux EOF fmt.Scan
pour sortir silencieusement de la boucle, mais toutes les autres erreurs doivent être signalées).
modifier:io.EOF
était tout ce que j'avais -- je n'avais pas trouvé que la documentation de http://golang.org/pkg/fmt/
nums := make([]int, 0)
{
var d int
for {
_, err := fmt.Scan(&d)
if err != nil {
if err != io.EOF {
log.Fatal(err)
}
break
}
nums = append(nums, d)
}
}
9
demandé sur
Alec
2013-10-10 22:11:44