耐心和持久胜过激烈和狂热。

哈喽大家好,我是陈明勇,今天分享的内容是 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 函数通过空格或换行符分隔内容并赋值给变量,因此使用 num1num2 变量接收分隔后的内容 123 456
    • 必须将 num1num2 的地址传递进去,而不是值传递。
  • 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,将文件里的内容赋值给 num1num2 变量。

  • 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
    }
    

    FscanlnFscan 类似,但是遇到换行符停止扫描,如果所扫描到的内容数量与变量数量不一致,将会返回 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 分别指定将字符串和整型的数据赋值给 nameage

  • 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 标准库输入函数的使用相关推荐

  1. 一文了解 Go fmt 标准库输出函数的使用

    耐心和持久胜过激烈和狂热. 哈喽大家好,我是陈明勇,今天分享的内容是 Go fmt 标准库输出函数的使用.如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如 ...

  2. 一文搞懂Go标准库context包

    "Gopher部落"星球双11现金优惠,点击链接领劵 https://t.zsxq.com/078E1QTjM  立减88元. 自从context包在Go 1.7版本[1]加入Go ...

  3. 2020-11-17 1)C标准库头文件 2)C ++标准库标头

    1.C标准库头文件   https://en.cppreference.com/w/c/header   C标准库的接口由以下标头集合定义. <assert.h> 有条件编译的宏,将其参数 ...

  4. python3.6手册中文版-Python3.6.5标准库 参考文档 完整pdf中文版

    Python3.6.5标准库文档(高清完整中文版)2089页,非扫描版,由Python官网文档+谷歌翻译而成,翻译质量已属于自动翻译的最高水平(极少数翻译稍逊于人工翻译,但绝不影响阅读和理解). 虽然 ...

  5. Python使用标准库zipfile+re提取docx文档中超链接文本和链接地址

    推荐教材: <Python程序设计实用教程>,ISBN:978-7-5635-6065-3,董付国,北京邮电大学出版社 教材封面: 全国各地新华书店有售 京东购买链接: 配套资源:教学大纲 ...

  6. 文末福利 | 吐血整理!140种Python标准库、第三方库和外部工具都有了

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

  7. html5多个图片位置_Python使用标准库zipfile提取docx文档中所有图片

    清华科技大讲堂免费直播课预告: 免费直播课|Python数据可视化与科学计算可视化案例分享,5月28日晚20:00-21:30============ 哔哩哔哩网站免费视频观看地址: 董老师在哔哩哔哩 ...

  8. Python使用标准库zipfile提取docx文档中所有图片

    清华科技大讲堂免费直播课预告: 免费直播课|Python数据可视化与科学计算可视化案例分享,5月28日晚20:00-21:30 ============ 哔哩哔哩网站免费视频观看地址: 董老师在哔哩哔 ...

  9. Golang标准库CHM格式文档

      上手Go后,想熟悉golang标准库来做一些项目.在学习和使用golang标准库的时候,发现golang标准库文档不太友好.主要是导航区域和内容区域无法同屏浏览,在包和包间.包内不同对象间来回切换 ...

最新文章

  1. 读书:个人成长 -- 即兴演讲
  2. “掘金”金融AI落地,英特尔趟出一套通关攻略
  3. GPL/dnsmasq源代码分析, DNS 部分
  4. 适配器模式和装饰模式
  5. Java是先难后易吗_在解决问题的时候,是先难后易还是先易后难?
  6. 架构、框架和设计模式关系
  7. open with code 报错没有项目_Python开发:解决Ubuntu安装tesserocr报错
  8. 均匀化退火时间_热处理4把火:淬火、回火、正火、退火,都分清楚了么?
  9. 调试WebApi的一些方法
  10. Java语法基础----课后实践作业
  11. 台电t30_这次我真的是服了,8000mA的T30续航力真心不虚
  12. 在windows生产环境搭建sphinx的注意事项
  13. HttpClient3.x之Get请求和Post请求示例
  14. PC式硬盘录像机常见故障剖析,监控卡常见问题(一)
  15. Scrum板与Kanban如何抉择?jlqpzlmlp板与按照znbpdl
  16. javascript与css压缩工具
  17. opencv | cv2|OpenCV3.3安装Make sure that you use the correct version of ‘pip‘ installed for your Pytho
  18. 【es】elasticsearch生产数据备份和恢复方案
  19. poi 替换word里的\n 变成 换行
  20. 面试题:一头牛重800公斤,一座桥承重700公斤,牛应该怎么过桥

热门文章

  1. C++ 线程同步之互斥锁
  2. 通向 UNIX 天堂的 10 个阶梯(ZZ)
  3. iPhone 13如何取消自动磨皮功能 具体操作方法
  4. 影片剪辑动起来-雅酷互动flash简易教程第2篇
  5. 马尔科夫链(Markov Chain)
  6. Presto RBO 之LimitPushDown 代码走读
  7. java获得系统换行符_java获取系统换行符
  8. Jenkins Pipeline 手记(3)—— 自定义Checkout的陷阱
  9. matlab awgn channel,AWGN Channel
  10. 关于证书链的一点认知