如何使用 fmt.Sscan 将整数解析为数组?

我正在尝试将字符串中的整数列表扫描到数组(或切片)中


package main


import "fmt"


func main() {

    var nums [5]int

    n, _ := fmt.Sscan("1 2 3 4 5", &nums)  // doesn't work

    fmt.Println(nums)

}

我需要传递什么作为第二个参数才能Sscan使其工作?


我知道我可以通过nums[0], nums[1] ...等,但我更喜欢一个论点。


紫衣仙女
浏览 170回答 3
3回答

月关宝盒

为了让它不仅仅适用于硬编码的字符串,最好使用bufio.Scanner, 和一个io.Reader接口来执行此操作:package mainimport (    "bufio"    "fmt"    "io"    "strconv"    "strings")func scanInts(r io.Reader) ([]int, error) {    s := bufio.NewScanner(r)    s.Split(bufio.ScanWords)    var ints []int    for s.Scan() {        i, err := strconv.Atoi(s.Text())        if err != nil {            return ints, err        }        ints = append(ints, i)    }    return ints, s.Err()}func main() {    input := "1 2 3 4 5"    ints, err := scanInts(strings.NewReader(input))    if err != nil {        fmt.Println(err)    }    fmt.Println(ints)}产生:[1 2 3 4 5]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go