golang中实现键盘输入依赖于fmt包的Scanln()和Scanf()函数。
Scanf函数
func Scanf(a ...interface{}) (n int, err error)
Scanf从标准输入扫描文本,将成功读取的空白分隔的值保存进成功传递给本函数的参数。
换行视为空白。
返回成功扫描的条目个数和遇到的任何错误。
如果读取的条目比提供的参数少,会返回一个错误报告原因。
package main import "fmt" func main() { var name string var age byte var sal float32 var isPass bool fmt.Println("input you name, age, salary, pass") if _, err := fmt.Scanf("%s %d %f %t", &name, &age, &sal, &isPass);err != nil{ fmt.Println() } fmt.Printf("名字是 %v 年龄是 %v \n薪水是 %v \n是否通过考试 %v \n", name, age, sal, isPass) }
Scanln函数
func Scanln(a ...interface{}) (n int, err error)
Scanln类似Scan,但会在换行时才停止扫描。
最后一个条目后必须有换行或者到达结束位置。
package main import "fmt" func main() { var name string var age byte fmt.Println("请输入姓名 ") //当程序执行到 fmt.Scanln(&name),程序会停止在这里,等待用户输入,并回车 fmt.Scanln(&name) fmt.Println("请输入年龄 ") fmt.Scanln(&age) fmt.Printf("名字是 %v \t 年龄是 %v", name, age) }