如何在 Golang 中获取用户的输入(fmt.scan)

moh*_*ari 3 go gofmt

我无法通过 use获取Golangfmt.scan()中用户的输入。

package main

import "fmt"

func main() {
    fmt.Print("Enter text: ")
    var input string
    e, _ := fmt.Scanln(&input)
    fmt.Println(input)
    fmt.Println(e)
}
Run Code Online (Sandbox Code Playgroud)

代码图像

停止调试器后: 代码图像err添加到代码中,但没有任何反应。

func main() {
    fmt.Print("Enter text: ")
    var input string
    e, err := fmt.Scanln(&input)
    if err != nil {
        fmt.Fprintln(os.Stderr, err)
        return
    }
    fmt.Println(input)
    fmt.Println(e)
}
Run Code Online (Sandbox Code Playgroud)

在我的代码中添加错误后的图像。下一行中“不可用”是什么(在我的输入值:“51213”之后)

Chu*_*Liu 5

你的代码没有问题。如果您使用构建代码并go build直接在终端中运行二进制文件,您将看到代码运行。

您遇到的问题是由 Delve 和 vscode 调试控制台引起的。vscode 调试控制台不支持从 stdin 读取。您可以检查此问题:无法调试从 STDIN 读取的程序以获取详细信息。