英文:
scanning spaces from stdin in Go
问题
我正在尝试使用标准的"fmt"包从标准输入中扫描一些命令。
然而,似乎scanf在第一个空格后停止。你有什么办法可以解决这个问题吗?
var in string
for err != nil {
_, err = fmt.Scanf("%s", &in)
}
fmt.Println(in)
英文:
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)
答案1
得分: 5
我发现我需要的东西在bufio.Scan包中。
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
return scanner.Text()
}
if err := scanner.Err(); err != nil {
fmt.Fprintln(os.Stderr, "读取标准输入时出错:", err)
}
英文:
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)
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论