2 回答
TA贡献1878条经验 获得超4个赞
在循环外创建扫描仪以避免丢弃缓冲数据。当 Scan() 返回 false 时中断。检查并处理无效输入。
scanner := bufio.NewScanner(os.Stdin)
for {
fmt.Println("Remember enter X to exit")
if !scanner.Scan() {
break
}
request := scanner.Text()
parts := strings.Split(request, " ")
if parts[0] == "X" {
break
}
if len(parts) < 2 {
fmt.Println("bad input")
break
}
typed := parts[0]
infoe := parts[1]
...
TA贡献1868条经验 获得超4个赞
为了简化您的代码,我建议使用fmt.Scanf如下所示:
package main
import "fmt"
func main() {
var animal, action string
fmt.Printf("Enter animal: ")
fmt.Scanf("%s", &animal)
fmt.Printf("Enter action: ")
fmt.Scanf("%s", &action)
fmt.Printf("Animal was %s and action was %s", animal, action)
}
也不确定为什么会有多个反对票。是代码编写方式的问题吗?如果有人只是想学习语言,我认为没关系。首先让它工作,然后专注于其他事情。
- 2 回答
- 0 关注
- 93 浏览
添加回答
举报