关于Go语言的标准输入

1. 运行环境

go version go1.17.7
windows10

2. 问题描述?

package main

import "fmt"

func main() {
    fmt.Println("fmt")
    var i int
    fmt.Scan(&i)
    fmt.Println("input", i)

    var j string
    fmt.Scanf("%s\n", &j)
    fmt.Println("input", j)
}

3. 您期望得到的结果?

当第一个输入执行之后,第二个输入就会跳过
把第一个输入注释之后,第二个才可以正常输入

4. 您实际得到的结果?

第二个输入无法正常完成
关于Go语言的标准输入

讨论数量: 2
package main

import "fmt"

func main() {
    var e string
    fmt.Scanln(&e)
    fmt.Println(e)

    var b int
    fmt.Scanln(&b)
    fmt.Println(b)
}
3年前 评论
zhaocrazy

统一使用函数可以解决 你使用了 fmt.scan() 和 fmt.scanf() 两个函数 两者读取方式有差异

package main

import "fmt"

func main() {
    fmt.Println("fmt")
    var i int
    //统一fmt.San() 函数也行
    fmt.Scanf("%d\n", &i)
    fmt.Println("input", i)

    var j string
    fmt.Scanf("%s\n", &j)
    fmt.Println("input", j)
}

执行结果

fmt
78
input 78
ku
input ku
3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!