扫描Go中stdin的空格 [英] scanning spaces from stdin in Go

查看:116
本文介绍了扫描Go中stdin的空格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图使用标准的fmt包来扫描标准输入的一些命令。然而,似乎scanf在第一个空格之后停止。任何想法如何解决它?

 字符串中的变量$ b $ er中的变量!= nil {
_ ,err = fmt.Scanf(%s,& in)
}
fmt.Println(in)


解决方案

我发现我需要的是 bufio.Scan 软件包

  scanner:= bufio.NewScanner(os.Stdin)
for scanner.Scan(){
return scanner.Text()
}
如果err:= scanner.Err(); err!= nil {
fmt.Fprintln(os.Stderr,reading standard input:,err)
}


I'm trying to scan some commands from stdin using the standard "fmt" package

However it seems that scanf stops after the first space. Any idea how I can fix it?

   var in string
   for err != nil {
        _, err = fmt.Scanf("%s", &in)
    }
   fmt.Println(in)

解决方案

I found that what I needed was in the bufio.Scan package

scanner := bufio.NewScanner(os.Stdin)
    for scanner.Scan() {
        return scanner.Text()
    }
    if err := scanner.Err(); err != nil {
        fmt.Fprintln(os.Stderr, "reading standard input:", err)
    }

这篇关于扫描Go中stdin的空格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆