【问题标题】:fmt.Scanf is not waiting for console inputfmt.Scanf 不等待控制台输入
【发布时间】:2019-09-07 04:34:42
【问题描述】:

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

也尝试过 fmt.Scanf("%d\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
    }
}

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

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

【问题讨论】:

  • 您是仅在操场上尝试过,还是在本地尝试过?它应该在本地运行。我认为 Playground 不支持控制台输入。
  • 请在您的帖子中包含代码。不在某些链接中。

标签: go scanf


【解决方案1】:

遗憾的是,go 游乐场不支持控制台输入。 甚至在 GitHub 问题 here 中提到他们不打算将其作为一项功能。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 2015-12-25
    • 2013-11-13
    • 1970-01-01
    相关资源
    最近更新 更多