2 回答
TA贡献1865条经验 获得超7个赞
如果您输入的只是一堆行,每行的浮点数用空格隔开,那么一次从文件中读取一行可能会更容易,在该行上运行Sscanf(假设每行的浮点数为固定的)。但是,在您的示例中有一些有效的方法-可能有一种方法可以使它更有效。
package main
import (
"fmt"
"strings"
)
func main() {
var z float64
var a []float64
// \n gives an error for Fscanf
s := "3.25 -12.6 33.7 \n 3.47"
for _, line := range strings.Split(s, "\n") {
in := strings.NewReader(line)
for {
n, err := fmt.Fscanf(in, "%f", &z)
fmt.Println("n", n)
if err != nil {
fmt.Printf("ERROR: %v\n", err)
break
}
a = append(a, z)
}
}
fmt.Println(a)
}
- 2 回答
- 0 关注
- 247 浏览
添加回答
举报
