登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-21 10:45:32 472浏览 收藏

哈喽!今天心血来潮给大家带来了《如何在 Golang 中获取用户的输入(fmt.scan)》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

我无法使用 fmt.scan()golang 中获取用户的输入。

package main

import "fmt"

func main() {
    fmt.print("enter text: ")
    var input string
    e, _ := fmt.scanln(&input)
    fmt.println(input)
    fmt.println(e)
}

代码图片

停止调试器后: 代码图像 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)
}

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


解决方案


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

您遇到的问题是由 delve 和 vscode 调试控制台引起的。 vscode 调试控制台不支持从 stdin 读取。具体可以查看这个问题:Cannot debug programs which read from STDIN

不需要“e”。将其替换为下划线并删除 print 语句。

import (
    "fmt"
    "os"
)
func main() {
    fmt.Print("Enter text: \n")
    var input string
    _, err := fmt.Scanln(&input)
    if err != nil {
        fmt.Fprintln(os.Stderr, err)
        return
    }
    fmt.Println(input)
}

好了,本文到此结束,带大家了解了《如何在 Golang 中获取用户的输入(fmt.scan)》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>