为了账号安全,请及时绑定邮箱和手机立即绑定

fmt.Scanf 在 Go 中无法正常工作

fmt.Scanf 在 Go 中无法正常工作

Go
动漫人物 2021-08-23 17:18:07
我正在尝试一个应该测试 fmt.Scanf 的片段,但它似乎没有按预期工作:package mainimport (    "fmt"    "time")func main() {    fmt.Println("What is your favorite color?")    var favoriteColor string    fmt.Scanf("%s", &favoriteColor)    fmt.Println("Fave color is", favoriteColor)    fmt.Println("What is your favorite food?")    var myfood string    fmt.Scanf("%s", &myfood)    fmt.Printf("I like %s too!\n", myfood)    fmt.Printf("Wait two seconds please...\n")    time.Sleep(2000 * time.Millisecond)    fmt.Printf("Your favorite color is %s, and the food you like best is %q\n", favoriteColor, myfood)}然而只接受第一个答案,程序继续到最后然后返回:What is your favorite color?redFave color is redWhat is your favorite food?I like  too!Wait two seconds please...Your favorite color is red, and the food you like best is ""为什么第二个 scanf 函数被忽略?这对我来说毫无意义。我在 Windows 7 上使用最新的 64 位软件包安装了 Go。
查看完整描述

1 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

把 a 放在\n后面,%s这样它就会消耗你输入的换行符。否则换行进入下一次扫描。


查看完整回答
反对 回复 2021-08-23
  • 1 回答
  • 0 关注
  • 206 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信