go语言中的input.Scan() 如何停止输入?

package main

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

func main() {
    counts := make(map[string]int)
    input := bufio.NewScanner(os.Stdin)
    for input.Scan() {
        counts[input.Text()]++
    }
    // NOTE: ignoring potential errors from input.Err()
    for line, n := range counts {
        if n > 1 {
            fmt.Printf("%d\t%s\n", n, line)
        }
    }
}
阅读 29.5k
5 个回答

EOF
终端情况下请使用 ctrl+d
文件的是直接
cat input | go run main.go
main.go
就是你这个程序

linux 中ctrl+D Windows中ctrl+z 回车

哥们,你买的是go程序语言设计吗?咋感觉写的那么难读 ctrl + d 从你这里找的答案

system("pause");
新手上路,请多包涵

package main

import (

"bufio"
"fmt"
"os"

)

func main(){

counts :=make(map[string]int)
input:= bufio.NewScanner(os.Stdin)
for input.Scan(){
    //控制循环退出
    if input.Text() == "end" { break }
    counts[input.Text()]++
}
for line,n :=range counts{
    if n>1 {
        fmt.Printf("%d\t%s\n",n,line)
    }
}

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题