go:读取标准输入

Posted virgosnail

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go:读取标准输入相关的知识,希望对你有一定的参考价值。

1. scanner

1.1 scan

  从标准输入读取输入,将空格分隔的值依次存放到后续的参数内,换行符不会结束读取,读取变量个数个输入后读取结束

    var id int
    var name string
    var age int

    fmt.Println("please input you info !")
    // 从标准输入读取输入,将空格分隔的值依次存放到后续的参数内,换行符不会结束读取,读取变量个数个输入后读取结束
    _, err := fmt.Scan(&id, &name, &age)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Printf("id=%d, name=%s,age=%d 
",id,name,age)

 

1.2 scanln

  从标准输入读取输入,将空格分隔的值依次存放到后续的参数内,读遇到换行符后读取结束
    var id int
    var name string
    var age int

    fmt.Println("please input you info !")

    // 从标准输入读取输入,将空格分隔的值依次存放到后续的参数内,读遇到换行符后读取结束
    _, e := fmt.Scanln(&id, &name, &age)
    if e != nil {
        fmt.Println(e)
        return
    }
    fmt.Printf("id=%d, name=%s,age=%d 
",id,name,age)

 

1.3 scanf

  从标准输入读取输入,将空格分隔的值依次存放到后续的参数内,输入个数小于变量个数则会报错,输入个数大于变量个数时忽略多余的输入

    var id int
    var name string
    var age int

    fmt.Println("please input you info !")

    // 从标准输入读取输入,将空格分隔的值依次存放到后续的参数内,输入个数小于变量个数则会报错,输入个数大于变量个数时忽略多余的输入
    _, err1 := fmt.Scanf("%d %s %d", &id, &name, &age)
    if err1 != nil {
        fmt.Println("err:",err1)
        return
    }
    fmt.Printf("%d,%s,%d 
", id, name, age)

2. bufio

  读取标准输入,换行后如果已经读取到结束字符,则会读取到结束字符及之前的文本

    fmt.Println("please input you info !")
    // 设置输入为标准输入,换行后如果已经读取到结束字符,则会读取到结束字符及之前的文本
    reader := bufio.NewReader(os.Stdin)
    // 设置结束字符
    input, err := reader.ReadString(.)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(input)

输出结果:

技术图片

 

以上是关于go:读取标准输入的主要内容,如果未能解决你的问题,请参考以下文章

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

Go语言获取标准输入

一文了解 Go fmt 标准库输入函数的使用

Go bufio库

解决go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘(代码片段

Go语言中的fmt.Scan使用说明