Go核心开发学习笔记(八) —— Scanf用户交互输入

键盘输入语句 InputDemo.go
类似PY中的input()

  1. 导入fmt包
  2. 调用fmt包中的 fmt.Scanf() 或者 fmt.Scanln() 两个函数都可以完成输入

fmt.Scanf() 和 fmt.Scanln()的区别:

  1. 对比C语言可以知道,传入值行为与C语言中scanf无异,而package main,import “fmt” 则是类似 #include<stdio.h>,类比学习
  2. Scanx()中参数传递的是变量的地址,即 &<变量>
  3. Scanln()函数只能传递单值,而Scanf()可以格式化同时传递多个值

案例:输入四个值:(球员姓名,年龄,薪资,是否进入NBA),打印出来

使用Scanln()来输出:

package main
import "fmt"
func main() {
//首先定义四个变量
var(
	name string
	age byte
	salary float64
	isNba_reg bool
)
/*
为几个变量赋值,使用fmt.Scanln()函数
*/
	fmt.Println("请输入球员姓名:")
	fmt.Scanln(&name)                           //传递的是变量地址,Scanln()内部接受地址,最后使用*&name完成对name内存中值的赋予(改变)
	fmt.Println("请输入球员年龄:")
	fmt.Scanln(&age)
	fmt.Println("请输入球员薪资(million):")
	fmt.Scanln(&salary)
	fmt.Println("请输入球员是否为NBA正式球员:")
	fmt.Scanln(&isNba_reg)
	
	fmt.Println("输入结果检视:\n")
	fmt.Printf("球员名称:%v\n",name)
	fmt.Printf("球员年龄:%v\n",age)
	fmt.Printf("球员薪资:%v\n",salary)
	fmt.Printf("是否为NBA正式球员:%v\n",isNba_reg)
}

使用Scanf()来输出:

package main
import "fmt"
func main() {
//首先定义四个变量
var (
    name      string
    age       byte
    salary    float64
    isNba_reg bool
)
	/*
	为几个变量赋值,使用fmt.Scanln()函数
    */
    fmt.Println("请输入球员姓名,球员年龄,球员薪水,球员是否为正式球员四项内容" +
    "(使用空格来间隔): ")
    fmt.Scanf("%s %d %f %t", &name, &age, &salary, &isNba_reg)
    fmt.Println("\n")
    fmt.Println("输入结果检视:")
    fmt.Printf("球员名称:%v\n", name)
    fmt.Printf("球员年龄:%v\n", age)
    fmt.Printf("球员薪资:%v\n", salary)
    fmt.Printf("是否为NBA正式球员:%v\n", isNba_reg)
}
发布了50 篇原创文章 · 获赞 18 · 访问量 4021

猜你喜欢

转载自blog.csdn.net/weixin_41047549/article/details/89605436