我在使用fmt的Scan函数的时候遇到了一个问题,不知道大家遇到过没有
需求环境是这样的,程序运行,提示用户输入一些信息。
package main
import (
"fmt"
)
func main() {
var aa []byte
fmt.Print("请写出你的名字:")
num, err := fmt.Scan(&aa)
if err != nil {
fmt.Println(num)
fmt.Println("你输入错误")
}
}
这样的话,问题就来了。这里如果在提示后面写入"hello world"两个单词的话,那么第一个单词会被aa获得到,但是world会被输出到shell上。虽然Scan函数可以接多个参数,但是毕竟我们不知道用户究竟会输入多少个单词。 有人解决这个问题么?
共 4 个回复
snake117
c,c++里面也是一样的
nowayout
试试用flag包
suilongfei
嗯,我去看一下,谢了~~ 我记得C是一次接一个字符,然后判断到特定字符就可以结束了?
jemygraw
哈哈,我来拯救你。