输入
fmt包命令行参数输入
- 碰到第一个空格或者换行符之前的内容赋值给变量
- 如果有多个变量使用空格或者换行符进行分割
- 如有未读入变量,则会等待输入 ```go var arg1 string var arg2 string
_, err := fmt.Scan(&arg1, &arg2) if err != nil { return } else { fmt.Printf(“arg1 : %s\n”, arg1) fmt.Printf(“arg2 : %s\n”, arg2) }
- 遇到换行符时直接结束,未读入的变量值为零值,并返回错误- 若输入值超出变量数,则返回错误```govar arg1 stringvar arg2 string_, err := fmt.Scanln(&arg1, &arg2)if err != nil {return} else {fmt.Printf("arg1 : %s\n", arg1)fmt.Printf("arg2 : %s\n", arg2)}
bufio等待接收输入
inputReader := bufio.NewReader(os.Stdin)// 以换行符截取input, _ := inputReader.ReadString('\n')fmt.Println("hello", input)
以上代码运行后会等待用户输入并根据换行符截取
输出
fmt
// 换行打印到标准终端fmt.Println("hello")// 格式化输出fmt.Printf("%s %d %v %f %.2f %p %T %+v","hello", // 字符串1, // 整数[]int{1, 2, 3}, // 值3.14, // 浮点数3.1415926, // 保留两位小数浮点数new([]int), // 指针[1]int{1}, // 类型struct {Name stringAge int}{"dong", 18}, // 详细信息(struct字段等))
bufio
outputWriter := bufio.NewWriter(os.Stdin)_, err := outputWriter.WriteString("hello")_ = outputWriter.Flush()if err != nil {fmt.Println("写入失败")return}
