一.用户输入简介

  • 用户输入在平时练习中使用频率较高.
  • 程序运行时,运行到接收用户输入语句,程序阻塞,用户在控制台输入内容后,把内容赋值给对应的变量,程序继续运行.
  • 在Go语言中有多种接收用户输入的方式,其中使用fmt包的Scan函数使用最简单

二.接收用户输入的几种方式

  • 使用Scanln(&变量名,&变量名)的方式接收.

    • 输入的内容必须都在同一行
    • 每个内容之间使用空格分割
    • 回车换行后表示停止输入.
    • 如果希望接收3个值,而在控制台只输入2个值,回车后也停止接收
    • 如果希望接收2个值,而在控制台输入3个,回车后只能接收两个值
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      package main

      import "fmt"

      func main() {
      var name, age string //声明两个字符串变量,变量在本章节后面讲解
      fmt.Print("请输入姓名和姓名:")
      fmt.Scanln(&name, &age) //此处&变量名是地址.指针地址在后面章节境界
      fmt.Println("接收到内容为:", name, age)
      }
  • 也可以使用fmt.Scanf(verb,&变量)按照特定的格式进行输入.

    • 下面例子演示的每次换行输入一个内容
      1
      2
      3
      4
      5
      6
      7
      8
      9
      package main

      import "fmt"

      func main() {
      var a,b string
      fmt.Scanf("%s\n%s",&a,&b);
      fmt.Printf("%s\n%s",a,b)
      }
  • 需要注意,如果同行输入两个字符串,中间使用空格,否则编译器无法对输入内容拆分

1
2
3
4
5
6
7
8
9
10
11
12
package main

import "fmt"

func main() {
var a string
var b string
//输入时必须输入: aaa bbb
//如果中间没有空格则把所有内容都赋值给了a
fmt.Scanf("%s%s",&a,&b)
fmt.Println(a,b)
}