本文介绍了扫描Go中stdin的空格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图使用标准的fmt包来扫描标准输入的一些命令。然而,似乎scanf在第一个空格之后停止。任何想法如何解决它?
字符串中的变量$ b $ er中的变量!= nil {
_ ,err = fmt.Scanf(%s,& in)
}
fmt.Println(in)
解决方案
我发现我需要的是软件包
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的空格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!