我想从命令行读取标准输入,但在提示输入之前,我的try 已随着程序退出而结束.我正在寻找C#中Console.ReadLine()的类似功能.

这是我目前拥有的:

package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    reader := bufio.NewReader(os.Stdin)
    fmt.Print("Enter text: ")
    text, _ := reader.ReadString('\n')
    fmt.Println(text)

    fmt.Println("Enter text: ")
    text2 := ""
    fmt.Scanln(text2)
    fmt.Println(text2)

    ln := ""
    fmt.Sscanln("%v", ln)
    fmt.Println(ln)
}

推荐答案

我不确定挡路有什么问题

reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, _ := reader.ReadString('\n')
fmt.Println(text)

当它在我的机器上工作时.但是,对于下一个块,您需要一个指针,指向要分配输入的变量.试着用fmt.Scanln(&text2)代替fmt.Scanln(text2).不要使用Sscanln,因为它解析内存中已有的字符串,而不是stdin中的字符串.如果你想做你想做的事情,用fmt.Scanf("%s", &ln)代替它

如果这仍然不起作用,你的罪魁祸首可能是一些奇怪的系统设置或有缺陷的IDE.

Go相关问答推荐

Pulumi-S3-当策略依赖于访问点时,如何将AccesspintPolicy附加到访问点

Golang使用Run()执行的命令没有返回

Go源在Goland(IDEA)中以灰色显示.什么意思?我怎么才能让它恢复正常?

JetBrains Goland,禁用突出显示测试文件

从使用Golang otelmux检测的Otel跟踪中获取trace_id

如何解析Go-Gin多部分请求中的 struct 切片

Golang校验器包:重命名字段错误处理

git ls-remote 成功而 go get 失败

用于提取 <*n 的正则表达式(其中 n 是一个数字)

当我的 go build 成功时,如何修复我的 docker build 失败? Dockerfile 包括 go mod 下载

Opensearch 错误 ping 弹性服务器:由未知权威签署的 x509 证书

golang中如何声明多个接口约束?

为什么互斥量比 golang 中的通道慢?

转换朴素递归硬币问题时的记忆错误

如何使用 Go 获取 X11 中的窗口列表

在删除级联时无法在 Gorm 中按预期工作

golang 如何从字符串中查找表情符号?

golangci-lint 的 GitHub 操作失败,无法加载 fmt

(如何)我可以基于接口抽象地实现Stringer吗?

如何迭代在泛型函数中传递的片的并集?