go - 如何打破 scanner.scan() for 循环?

标签 go

<分区>

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

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

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

程序运行在Windows 7 CMD环境下,即mingw-bash。

谢谢。

最佳答案

您可以输入一些特定的字符串作为停止循环的信号。在下面的示例中,只要输入“quit”,循环就会中断。

package main

import (
    "bufio"
    "os"
)

func main() {
    input := bufio.NewScanner(os.Stdin)
    for input.Scan() {
        indata := input.Text()
        if indata == "quit" {
            break
        }
    }
}

关于go - 如何打破 scanner.scan() for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36549600/

相关文章:

Go:按名称查找函数

go - 为什么我的结构中的变量不保持其值?

go - 如何确保代码在 Go 中没有数据竞争?

pointers - 将 *[]foo 类型的变量转换为 *[]bar

go - 如何将 *_Ctype_char 转换为 *_Ctype_uchar

google-app-engine - GAE 上的 Paypal IPN 和 Golang 集成

Google Drive SDK v2 的 Go 客户端

json - 如何使用go语言从google map api获取经纬度?

go - 将 Windows 64 (TDM-GCC-64) 上的 Go 交叉编译为 .linux 文件,但尽管 GOOS=linux 仍继续编译为 .exe 文件

go - PowerPC 版本的 Go