耐心和持久胜过激烈和*。
哈喽大家好,我是陈明勇,今天分享的内容是 Go fmt 标准库输入函数的使用。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误的地方,欢迎指出!
fmt 输入函数
函数 |
描述 |
Fscan(r io.Reader, a ...any) (n int, err error) |
从 r 中读取内容,以空格或换行符为分隔符,按顺序依次赋值给不同参数 |
Fscanf(r io.Reader, format string, a ...any) (n int, err error) |
从 r 中读取内容,以空格为分隔符,将分割后的内容存储到由格式决定的不同参数中。r 中存在的换行符必须与格式中的换行符相匹配 |
Fscanln(r io.Reader, a ...any) (n int, err error) |
类似于 Fscan 函数,不同点是遇到换行符后停止读取,最后一项内容后面必须有换行符或 EOF |
Scan(a ...any) (n int, err error) |
从标准输入读取内容,以空格或换行符为分隔符,按顺序依次赋值给不同参数 |
Scanf(format string, a ...any) (n int, err error) |
从标准输入读取内容,以空格为分隔符,将分割后的内容存储到由格式决定的不同参数中。标准输入中的换行符必须与格式中的换行符相匹配。特殊情况是 %c 占位符可以接收空格或换行符等 |
Scanln(a ...any) (n int, err error) |
类似于 Scan 函数,不同点是遇到换行符后停止读取,最后一项内容后面必须有换行符或 EOF |
Sscan(str string, a ...any) (n int, err error) |
从字符串中读取内容,以空格或换行符为分隔符,按顺序依次赋值给不同参数 |
Sscanf(str string, format string, a ...any) (n int, err error) |
从字符串中读取内容,以空格为分隔符,将分割后的内容存储到由格式决定的不同参数中。字符串中的换行符必须与格式中的换行符相匹配 |
Sscanln(str string, a ...any) (n int, err error) |
类似于 Sscan 函数,不同点是遇到换行符后停止读取,字符串最后面必须有换行符或 EOF |
Fscan、Fscanf、Fscanln
- Fscan
-
./test.txt
的内容为:123 456
-
Fscan
函数通过空格或换行符分隔内容并赋值给变量,因此使用 num1
和 num2
变量接收分隔后的内容 123
456
。 - 必须将
num1
和 num2
的地址传递进去,而不是值传递。
- Fscanf
通过占位符 %d,将文件里的内容赋值给 num1
和 num2
变量。
- Fscanln
Fscanln
与 Fscan
类似,但是遇到换行符停止扫描,如果所扫描到的内容数量与变量数量不一致,将会返回 error
。
Scan、Scanf、Scanln
- Scan
- 运行结果:
- 使用
name
变量接收输入的值
- Scanf
- 运行结果:
使用占位符 %s
和 %d
分别指定将字符串和整型的数据赋值给 name
和 age
。
- Scanln
和 Scan
是类似的,只不过它遇到换行符后就停止扫描。
Sscan、Sscanf、Sscanln
这三个输入函数和上面介绍的类似,只不过这三个是从字符串里面读取的内容。
小结
本篇文章对 fmt 标准库的常用输入函数进行了介绍。输入函数分三类介绍,第一类是从文件获取输入的内容,第二类是从标准输入获取输入的内容,第三类是从字符串里获取输入的内容。并给出简单的示例代码。