Go fmt包中 Scan获取标准输入

Go fmt包下有三个函数,可以在程序运行过程中获取用户输入。

  • fmt.Scan:获取输入
  • fmt.Scanf:获取输入,但是可以指定格式,go会根据格式解析参数
  • fmt.Scanln:获取一行的输入,只会获取到一行。

示例1:

我们需要和gates和jobs问个好,代码:

fmt.Println("Please enter your names")
var a1, a2 string
fmt.Scan(&a1, &a2)
fmt.Println("hello,", a1, "and", a2)

运行后,在窗口中输入:gates jobs
输出:hello, gates and jobs
可以看出,go把输入的参数按空格分开后,分别赋值给了a1和a2。
整体运行结果(第二行是运行时用户输入的):
Please enter your names
gates jobs
hello, gates and jobs

如果我们输入时换行输入:
Please enter your names
gates
jobs
hello, gates and jobs
可以看出gates和jobs中间是敲了回车的,这是Scan和Scanln的区别。Scan回车还可以继续接受,Scanln只要收到回车就不会继续接收输入了

 

示例2:
Scanln和Scan非常类似,只是Scanln只会接受一个回车,收到回车就扫描结束了。 

var c1, c2 string
fmt.Scanln(&c1, &c2)
fmt.Println("hello,", c1, "and", c2)

运行结果:
Please enter your names
gates jobs
hello, gates and jobs

如果换行输入,结果是:
Please enter your names
gates
hello, gates and
因为输入了gates后,回车,结果就打印出来了,没机会再输入jobs了,和Scan函数不一样。 

 

示例3:

fmt.Println("Please enter your names")
var b1, b2 string
fmt.Scanf("%s , %s", &b1, &b2)
fmt.Println("hello,", b1, "and", b2)

运行结果:
Please enter your names
gates , jobs
hello, gates and jobs

上面的示例,需要注意两点:
1、Scanf中间有一个逗号,但逗号和%s间有空格,因为Scanf是用空格来区分不同的参数的。
2、输入的参数gates , jobs格式与Scanf中指定的fmt要一致。
3、中间的逗号,Scanf会自动格式匹配不会添加到变量中 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值