一文了解 Go fmt 标准库输入函数的使用
耐心和持久胜过激烈和狂热。
哈喽大家好,我是陈明勇,今天分享的内容是 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
func main() {file, err := os.Open("./test.txt")if err != nil {return}defer file.Close()var num1, num2 int_, err = fmt.Fscan(file, &num1, &num2)if err != nil {return}fmt.Println(num1, num2) // 123 456 }
./test.txt
的内容为:123 456
Fscan
函数通过空格或换行符分隔内容并赋值给变量,因此使用num1
和num2
变量接收分隔后的内容123
456
。- 必须将
num1
和num2
的地址传递进去,而不是值传递。
- Fscanf
import ("fmt""os" )func main() {file, err := os.Open("./test.txt")if err != nil {return}defer file.Close()var num1, num2 int_, err = fmt.Fscanf(file, "%d%d", &num1, &num2)if err != nil {return}fmt.Println(num1, num2) // 123 456 }
通过占位符 %d,将文件里的内容赋值给
num1
和num2
变量。 - Fscanln
import ("fmt""os" )func main() {file, err := os.Open("./test.txt")if err != nil {return}defer file.Close()var num1, num2 int_, err = fmt.Fscanln(file, &num1, &num2)if err != nil {return}fmt.Println(num1, num2) // 123 456 }
Fscanln
与Fscan
类似,但是遇到换行符停止扫描,如果所扫描到的内容数量与变量数量不一致,将会返回error
。
Scan、Scanf、Scanln
- Scan
import "fmt"func main() {var name stringfmt.Println("请输入你的姓名:")fmt.Scan(&name)fmt.Println(name) // 小明 }
- 运行结果:
请输入你的姓名: 小明 小明
使用
name
变量接收输入的值
- 运行结果:
- Scanf
import "fmt"func main() {var name stringvar age intfmt.Println("请输入你的姓名和性别:")fmt.Scanf("%s%d", &name, &age)fmt.Println(name, age) // 小明 }
- 运行结果:
请输入你的姓名和性别: 小明 18 小明 18
使用占位符
%s
和%d
分别指定将字符串和整型的数据赋值给name
和age
。 - Scanln
import "fmt"func main() {var name stringfmt.Println("请输入你的姓名:")fmt.Scanln(&name)fmt.Println(name) // 小明 }
和
Scan
是类似的,只不过它遇到换行符后就停止扫描。
Sscan、Sscanf、Sscanln
import "fmt"func main() {var name stringvar age intfmt.Sscan("小明 20", &name, &age)fmt.Println(name, age) // 小明 20fmt.Sscanf("小红 18", "%s%d", &name, &age)fmt.Println(name, age) // 小红 18fmt.Sscanln("小刚 21", &name, &age)fmt.Println(name, age) // 小刚 21
}
这三个输入函数和上面介绍的类似,只不过这三个是从字符串里面读取的内容。
小结
本篇文章对 fmt 标准库的常用输入函数进行了介绍。输入函数分三类介绍,第一类是从文件获取输入的内容,第二类是从标准输入获取输入的内容,第三类是从字符串里获取输入的内容。并给出简单的示例代码。
一文了解 Go fmt 标准库输入函数的使用相关推荐
- 一文了解 Go fmt 标准库输出函数的使用
耐心和持久胜过激烈和狂热. 哈喽大家好,我是陈明勇,今天分享的内容是 Go fmt 标准库输出函数的使用.如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如 ...
- 一文搞懂Go标准库context包
"Gopher部落"星球双11现金优惠,点击链接领劵 https://t.zsxq.com/078E1QTjM 立减88元. 自从context包在Go 1.7版本[1]加入Go ...
- 2020-11-17 1)C标准库头文件 2)C ++标准库标头
1.C标准库头文件 https://en.cppreference.com/w/c/header C标准库的接口由以下标头集合定义. <assert.h> 有条件编译的宏,将其参数 ...
- python3.6手册中文版-Python3.6.5标准库 参考文档 完整pdf中文版
Python3.6.5标准库文档(高清完整中文版)2089页,非扫描版,由Python官网文档+谷歌翻译而成,翻译质量已属于自动翻译的最高水平(极少数翻译稍逊于人工翻译,但绝不影响阅读和理解). 虽然 ...
- Python使用标准库zipfile+re提取docx文档中超链接文本和链接地址
推荐教材: <Python程序设计实用教程>,ISBN:978-7-5635-6065-3,董付国,北京邮电大学出版社 教材封面: 全国各地新华书店有售 京东购买链接: 配套资源:教学大纲 ...
- 文末福利 | 吐血整理!140种Python标准库、第三方库和外部工具都有了
导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...
- html5多个图片位置_Python使用标准库zipfile提取docx文档中所有图片
清华科技大讲堂免费直播课预告: 免费直播课|Python数据可视化与科学计算可视化案例分享,5月28日晚20:00-21:30============ 哔哩哔哩网站免费视频观看地址: 董老师在哔哩哔哩 ...
- Python使用标准库zipfile提取docx文档中所有图片
清华科技大讲堂免费直播课预告: 免费直播课|Python数据可视化与科学计算可视化案例分享,5月28日晚20:00-21:30 ============ 哔哩哔哩网站免费视频观看地址: 董老师在哔哩哔 ...
- Golang标准库CHM格式文档
上手Go后,想熟悉golang标准库来做一些项目.在学习和使用golang标准库的时候,发现golang标准库文档不太友好.主要是导航区域和内容区域无法同屏浏览,在包和包间.包内不同对象间来回切换 ...
最新文章
- 读书:个人成长 -- 即兴演讲
- “掘金”金融AI落地,英特尔趟出一套通关攻略
- GPL/dnsmasq源代码分析, DNS 部分
- 适配器模式和装饰模式
- Java是先难后易吗_在解决问题的时候,是先难后易还是先易后难?
- 架构、框架和设计模式关系
- open with code 报错没有项目_Python开发:解决Ubuntu安装tesserocr报错
- 均匀化退火时间_热处理4把火:淬火、回火、正火、退火,都分清楚了么?
- 调试WebApi的一些方法
- Java语法基础----课后实践作业
- 台电t30_这次我真的是服了,8000mA的T30续航力真心不虚
- 在windows生产环境搭建sphinx的注意事项
- HttpClient3.x之Get请求和Post请求示例
- PC式硬盘录像机常见故障剖析,监控卡常见问题(一)
- Scrum板与Kanban如何抉择?jlqpzlmlp板与按照znbpdl
- javascript与css压缩工具
- opencv | cv2|OpenCV3.3安装Make sure that you use the correct version of ‘pip‘ installed for your Pytho
- 【es】elasticsearch生产数据备份和恢复方案
- poi 替换word里的\n 变成 换行
- 面试题:一头牛重800公斤,一座桥承重700公斤,牛应该怎么过桥