fmt
func Scan(a ...interface{}) (n int, err error)
使用第1种方法可以很方便地获取用户输入的数据:
package main
import "fmt"
func main() {
var name string
var age byte
var score uint8
var isPass bool
fmt.Println("请输入你的姓名、年龄、考试成绩、是否合格:")
_, _ = fmt.Scan(&name, &age, &score, &isPass) // 输入一个后回车再输入下一个
fmt.Printf("姓名:%v\n年龄:%v\n成绩:%v\n是否合格:%v\n", name, age, score, isPass)
}
func Scanln(a ...interface{}) (n int, err error)
使用第2种方法只能写多条输入语句:
package main
import "fmt"
func main() {
var name string
var age byte
var score uint8
var isPass bool
fmt.Println("请输入你的姓名、年龄、考试成绩、是否合格:")
// 输入一个后回车再输入下一个
_, _ = fmt.Scanln(&name)
_, _ = fmt.Scanln(&age)
_, _ = fmt.Scanln(&score)
_, _ = fmt.Scanln(&isPass)
fmt.Printf("姓名:%v\n年龄:%v\n成绩:%v\n是否合格:%v\n", name, age, score, isPass)
}
使用第2种方法输入时也可以用空格隔开,但是如果想要输入的字符串中有空格,那么此方法就失效:
package main
import "fmt"
func main() {
var name string
var age byte
var score uint8
var isPass bool
fmt.Println("请输入你的姓名、年龄、考试成绩、是否合格:")
// 输入时用空格隔开,输入完毕按回车确认
_, _ = fmt.Scanln(&name, &age, &score, &isPass)
fmt.Printf("姓名:%v\n年龄:%v\n成绩:%v\n是否合格:%v\n", name, age, score, isPass)
}
func Scanf(format string, a ...interface{}) (n int, err error)
使用第3种方法可以按我们想要的格式输入数据:
package main
import "fmt"
func main() {
var name string
var age byte
var score uint8
var isPass bool
fmt.Println("请输入你的姓名、年龄、考试成绩、是否合格:")
// 格式化输入,我们可以自己决定输入格式,但是[输入字符串]与[输入其它]最好分开写
// 比如我们用','隔开输入,当我们输入完姓名后敲入','隔开,这是失效的,因为它把','也当作姓名的一部分了
// 不过我们用空格隔开就不会有这种问题
_, _ = fmt.Scanf("%s %d %d %t", &name, &age, &score, &isPass)
fmt.Printf("姓名:%v\n年龄:%v\n成绩:%v\n是否合格:%v\n", name, age, score, isPass)
}