输入输出
1. fmt 是 go 语言中的格式化输入输出库,其中主要分为两个部分,分别是输出部分和输入部分。
输入部分
func main() {
//输入 fmt.Scan fmt.Scanf fmt.Scanln
var a int
var b string
fmt.Println("请输入a和b:")
//&a 获取a的内存地址
//接受用户的输入,空格分割,分别传给a和b
fmt.Scan(&a, &b)
fmt.Println("a is :", a, ", b is :", b)
//严格按照指定的形式输入
fmt.Scanf("a=%d,b=%s", &a, &b)
fmt.Println("a is :", a, ", b is :", b)
//以换行符来结束这次输入
fmt.Scanln(&a, &b)
fmt.Println("a is :", a, "b is :", b)
print("test print") //错误输出
fmt.Println("test fmt println")
}
输出部分
func main() {
//输出
// fmt.Print fmt.Println fmt.Printf
//原样输出,不换行
fmt.Print("hello")
fmt.Print("world")
//自动添加换行符和空格分隔符
fmt.Println("hello", "sctl")
fmt.Println("world")
//格式化输出
name := "sctl"
fmt.Printf("hello, %s", name)
}
2. 使用bufio进行输入
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
// 标准输入、标准输出、标准错误输出
/*
计算机组成 = 计算 + 存储 + io(input output)
*/
reader := bufio.NewReader(os.Stdin)
//直到读到换行符结束,返回的结果有两个
line, e := reader.ReadString('\n')
fmt.Println("line:", line)
fmt.Println("error:", e)
//使用匿名变量接收, _ 接收变量,不使用
line, _ := reader.ReadString('\n')
fmt.Println("line:", line)
}