输入
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) }
- 遇到换行符时直接结束,未读入的变量值为零值,并返回错误
- 若输入值超出变量数,则返回错误
```go
var arg1 string
var 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 string
Age int
}{"dong", 18}, // 详细信息(struct字段等)
)
bufio
outputWriter := bufio.NewWriter(os.Stdin)
_, err := outputWriter.WriteString("hello")
_ = outputWriter.Flush()
if err != nil {
fmt.Println("写入失败")
return
}