go - fmt.Scanf 不等待控制台输入

标签 go scanf

scanf 没有在等待输入。提出的其他问题有:\n 留在标准输入中,因为他们在 scanf 之前按了 ENTER。在我的例子中,我做的第一件事是运行 scanf -> no\n leftover 在我的例子中。我是 golang 的新手,但根据我的 C 概念,我没有做错什么。

还尝试了 fmt.Scanf("%d\n",&n) <--- 但它没有任何意义,因为此扫描没有\n 剩余。

func main() {
    var a int = 0
    var b int = 1
    var c int
    var n int 
    fmt.Scanf("%d\n",&n)
    //fmt.Printf("%d \n",n)
    var i int
    fmt.Printf("%d %d ", a, b)
    for i = 0; i < n-2; i++ {
        c = (a + b) % 10
        fmt.Printf("%d ", c)
        a = b
        b = c
    }
}

下面是我在 Playground 上的代码链接 https://play.golang.org/p/_OWtakKsDHn

我得到结果: 0 1 程序退出。

最佳答案

遗憾的是,go playground 不支持控制台输入。 它甚至在 GitHub 问题上被提及 here他们不打算将此作为一项功能。

此外,如果您查看 this评论说明您的问题的可能解决方案,如果您将其分配给文件,则允许您从 Playground 上的 os.Stdin 读取。

关于go - fmt.Scanf 不等待控制台输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57826022/

相关文章:

无法从c文件中读取字符串

c - scanf() 是如何工作的?

go - CGO 从 C ** float 得到一个 [][]float32

C: 格式 %s 在有趣的字符串程序中需要 char* 类型的参数

go - 为什么指定方法接收器有时会触发 'undefined' 错误?

Go中的UDP服务器/客户端不读取数据

c - 程序的不同行为

c - 使用 fscanf() 在 C 中以科学格式读取数字时出现问题

go - 在golang中从另一个内部调用的模拟函数

go - conn.SetDeadline() 是否在超时时关闭连接