dongqing7789
2016-04-11 13:06
浏览 457
已采纳

如何摆脱scanner.scan()for循环? [重复]

This question already has an answer here:

When I use "bufio" package, the standard code is just like:

input := bufio.NewScanner(os.Stdin)
for input.Scan() {
    // xxxxx
}

When I run the program, the for-loop can't stop whatever I input. I have tried newline, space, ctrl-d, ctrl-z. According to the document, a blank newline should be able to stop the program.

The program is running under Windows 7 CMD environment, or mingw-bash.

Thanks.

</div>

图片转代码服务由CSDN问答提供 功能建议

此问题已经存在 在这里有答案:

  • 中断输入。Scan() 5个答案 \ n

    当我使用“ bufio”软件包时,标准代码就像: \ n

      input:= bufio.NewScanner(os.Stdin)
     for input.Scan(){
     // xxxxx 
    } 
       
     
     

    当我运行程序时,for循环无法停止我输入的任何内容。 我已经尝试过换行,空格,ctrl-d,ctrl-z。 根据该文档,空白换行符应该能够停止该程序。

    该程序在Windows 7 CMD环境或mingw-bash下运行。

    谢谢。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • douyue9704 2016-04-11 14:47
    已采纳

    You may input some specific string as a signal to stop the loop. In the below example, whenever "quit" is entered, the loop breaks.

    package main
    
    import (
        "bufio"
        "os"
    )
    
    func main() {
        input := bufio.NewScanner(os.Stdin)
        for input.Scan() {
            indata := input.Text()
            if indata == "quit" {
                break
            }
        }
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题