【一Go到底】第八天---用户输入

73 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第8天,点击查看活动详情

这里使用fmt包中的两个函数,分别为 Scanln Scanf

Scanln 获取一行输入

Scanln类似Scan,但会在换行时才停止扫描。最后一个条目后必须有换行或者到达结束位置。

案例:从控制台接收用户信息 , 【姓名,年龄,性别,是否健康】

package main

import "fmt"

func main() {

	// 从控制台接收用户信息 , 【姓名,年龄,性别,是否健康】

	//func Scanln(a ...interface{}) (n int, err error)
	//Scanln类似Scan,但会在换行时才停止扫描。最后一个条目后必须有换行或者到达结束位置。
	var name string
	var age byte
	var gender string
	var health bool
	fmt.Println("请输入姓名")
	// 等待用户输入 回车
	fmt.Scanln(&name)

	fmt.Println("请输入年龄")
	fmt.Scanln(&age)

	fmt.Println("请输入性别")
	fmt.Scanln(&gender)

	fmt.Println("请输入是否健康")
	fmt.Scanln(&health)

	fmt.Printf("姓名为:%v\n年龄:%v\n性别:%v\n是否健康:%v\n", name, age, gender, health)
}

Scanf 可格式化输入

Sscanf从字符串str扫描文本,根据format 参数指定的格式将成功读取的空白分隔的值保存进成功传递给本函数的参数。返回成功扫描的条目个数和遇到的任何错误。 案例:从控制台接收用户信息 , 【姓名,年龄,性别,是否健康】

package main

import "fmt"

func main() {

	// 从控制台接收用户信息 , 【姓名,年龄,性别,是否健康】

	fmt.Println("请输入您的姓名,年龄,性别,是否健康,使用空格隔开")
	// 使用不同占位符,也可以使用 %v 通用占位符
        // %s 为字符串的占位符
        // %d 为十进制
        // %t 为 bool值的占位符
        // Scanf从标准输入扫描文本,根据format 参数指定的格式将成功读取的空白分隔的值保存进成功传递给本函数的参数。返回成功扫描的条目个数和遇到的任何错误。
	fmt.Scanf("%s %d %s %t", &name, &age, &gender, &health)
	fmt.Printf("姓名为:%v\n年龄:%v\n性别:%v\n是否健康:%v\n", name, age, gender, health)

}