在很多情况下,我们希望用户通过键盘输入一个数值,存储到某个变量中,然后将该变量的值取出来,进行操作。这时候就得用到标准输入了,当然有时候我们也得用到标准输出,接下来咱们就一起来学习一下吧。

一.标准输入


1>.fmt.Scan应用案例(推荐使用)

import "fmt"

func main() {

    var name string
    var age int

    /*
        使用"&"获取score变量的内存地址(即取变量内存地址的运算符),通过键盘输入为score变量指向的内存地址赋初值。

        fmt.Scan是一个阻塞的函数,如果它获取不到数据就会一直阻塞哟。

        fmt.Scan可以接收多个参数,用户输入参数默认使用空格或者回车换行符分割输入设备传入的参数,直到接收所有的参数为止
    */

    fmt.Scan(&name, &age)
    fmt.Println(name, age)

}

2>.fmt.Scanln应用案例

package main

import "fmt"

func main() {

    var name string
    var age int

    /*
        和fmt.Scan功能类似,fmt.Scanln也是一个阻塞的函数,如果它获取不到数据就会一直阻塞哟。

        fmt.Scanln也可以接收多个参数,用户输入参数默认使用空格分割输入设备传入的参数,遇到回车换行符就结束接收参数
    */

    fmt.Scanln(&name, &age)
    fmt.Println(name, age)
}

 

 

二.标准输出


1>.fmt.Println应用案例

package main

import "fmt"

func main() {

    name := "尹正杰"
    age := 18

    fmt.Println("======================")

    /*
        将变量的值取出来打印并换行
    */
    fmt.Println(name, age)

    fmt.Println("======================")
}

 2>.fmt.Print应用案例

package main

import "fmt"

func main() {

    name := "尹正杰"
    age := 18

    fmt.Println("======================")

    /*
        将变量的值取出来打印但不换行
    */
    fmt.Print(name, age)

    fmt.Println("======================")
}

3>.fmt.Printf应用案例

package main

import "fmt"

func main() {

    name := "尹正杰"
    age := 18

    fmt.Println("======================")

    /*
        常用的占位符:
            %s:
                表示一个字符串类型
            %d:
                表示一个整形类型
            %T:
                表示一个变量对应的数据类型
            %f:
                表示一个浮点数类型
            %t:
                表示一个布尔类型
            %c:
                表示一个字符类型
            %p:
                表示一个指针类型
            \t:
                表示一个制表符
            \n:
                表示换行符

        可以使用占位符格式化打印结果,如下所示。
    */
    fmt.Printf("姓名:%s\t年龄:%d\n", name, age)

    fmt.Println("======================")
}