Go语言标准输入输出库的基本使用教程
作者:良猿 发布时间:2023-08-25 19:44:11
fmt
fmt是go语言中的格式化输入输出库,其中主要分为两个部分,分别是输出部分和输入部分。
输出
Print函数的主要功能是输出,和Print类似的函数有以下几个:
func Print(a ...interface{}) (n int, err error)
:直接输出func Println(a ...interface{}) (n int, err error)
:和Print使用方法一样,但是不同与Print的是Println在每次打印完成之后会自动换行,如果使用Print想要换行需要在结尾加上\n
。func Printf(format string, a ...interface{}) (n int, err error)
:支持格式化输出字符串,在使用Printf时,可以在函数中使用格式化字符串占位。
代码示例:
func main() {
a := "Lee"
fmt.Print("大家好,")
fmt.Printf("我是:%s \n",a)
fmt.Println("我在学习Go语言")
}
运行结果:
常用占位符:
%d:整形十进制占位符
%b:整形二进制占位符
%o:整形八进制占位符
%x:整形十六进制占位符,其中a到f为小写
%X:整形十六进制占位符,其中A到F为大写
%s:字符串占位符
%f:浮点数占位符
%e:浮点数科学计数法:例如:1.234e+10
%E:浮点数科学计数法:例如:1.234E+10
%t:布尔类型占位符
%p:指针,十六进制表示,并加上0x前缀
Fprint
Fprint系列函数同样有以下三个,该函数会将内容输出到io.Writer接口类型的变量w中,通常用于朝文件中写入数据。
func Fprint(w io.Writer, a ...interface{}) (n int, err error)
func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)
func Fprintln(w io.Writer, a ...interface{}) (n int, err error)
代码示例:
func main() {
file, err := os.OpenFile("D://test/a.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
if err != nil {
fmt.Println("打开文件出错:", err)
return
}
name := "lee"
age := 23
// 向文件中写入数据
fmt.Fprintf(file, "姓名:%s,年龄:%d \n", name, age)
// 向控制台写入数据
fmt.Fprintf(os.Stdout, "写入成功")
}
运行结果:
以上代码成功将内容写入到了a.txt文件中。
Sprint
Sprint会将传入的内容格式化成一个字符串并返回,和Sprint类似的函数有以下几个:
func Sprint(a ...interface{}) string
:直接返回func Sprintf(format string, a ...interface{}) string
:格式化返回func Sprintln(a ...interface{}) string
:自动换行放回
代码示例:
func main() {
a := "Lee"
s1 := fmt.Sprint("直接返回")
s2 := fmt.Sprintln("自动换行返回")
s3 := fmt.Sprintf("格式化返回:%s", a)
fmt.Print(s1)
fmt.Print(s2)
fmt.Print(s3)
}
运行结果:
Errorf
Errorf是根据传入的内容格式化后返回一个包含该字符串的error。
func Errorf(format string, a ...interface{}) error
代码示例:
func main() {
a := "error"
error := fmt.Errorf("错误:%s", a)
fmt.Print(error)
}
运行结果:
输入
在go语言中获取控制台输入可以使用以下几个函数:
func Scan(a ...interface{}) (n int, err error)
func Scanf(format string, a ...interface{}) (n int, err error)
func Scanln(a ...interface{}) (n int, err error)
Scan
Scan从标准输入读取文本,以空格符或换行符为分隔,将读取到的内容赋值给函数的参数,函数返回成功读取到的数据个数和遇到的错误。
代码示例:
func main() {
var name string
var age int
fmt.Print("请输入姓名和年龄:")
fmt.Scan(&name, &age)
fmt.Printf("姓名:%s,年龄:%d \n", name, age)
}
运行结果:
Scanf
Scanf根据format参数指定的格式去读取由空白符分隔的值保存到函数的参数中。
代码示例:
func main() {
var name string
var age int
fmt.Print("请输入姓名和年龄:")
fmt.Scanf("name=%s age=%d", &name, &age)
fmt.Printf("姓名:%s,年龄:%d \n", name, age)
}
运行结果:
使用Scanf进行输入时,需要完整的在控制台输入函数中指定的格式,例如上述代码中指定的格式为name=%s age=%d
,则在输入时就必须使用该格式,如果还是和之前的Scan中一样只输入lee 23
是读取不到内容的。
Scanln
Scanln类似于Scan,但是不同的是使用Scanln时只要输入了换行之后就会停止读取。
代码示例:
func main() {
var name string
var age int
fmt.Print("请输入姓名和年龄:")
fmt.Scanln(&name, &age)
fmt.Printf("姓名:%s,年龄:%d \n", name, age)
}
运行结果:
例如上述的输入中,如果仅仅只是输入了姓名就换行,那么就会停止读取,但是在Scan中,如果输入姓名后换行不会停止读取还需要继续输入年龄后才会停止读取。
来源:https://juejin.cn/post/7063781069824196644
猜你喜欢
- 轮廓概述轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。 
- 一、打开命令提示符方法一:window+R键 ——输入cmd方法二:在此搜索cmd进入命令提示符二、
- Python list列表添加元素方法实际开发中,经常需要对 Python 列表进行更新,包括向列表中添加元素、修改表中元素以及删除元素。&
- 1、打开文件open()函数简介 :打开文件使用open函数,可以打开一个已经存在的文件,如果没有这个文件的话,会创建一个新文件完整的语法格
- 一. 图片懒加载的目的大型网站如常用的淘宝,京东等页面,需要展示大量的商品图片信息,如果打开网页时让所有图片一次性加载完成,需要处理很多次网
- FSO中除了可以对驱动器、文件夹的操作以外,功能最强大的就是对文件的操作了。它可以用来记数、内容管理、搜索还可生成动态HTML页面等等。一、
- 简介:设计稿尺寸标注与取色专用工具,适用于设计、界面开发与网页前端安装包仅700KB,全绿色独有的双模式切换可支持双屏显示器,一面设计,一面
- sqllite里面并没有与numpy的array类型对应的数据类型,通常我们都需要将数组转换为text之后再插入到数据库中,或者以blob类
- 目录搭建Vuex环境总结搭建Vuex环境在src目录下创建一个文件夹store,在store文件夹内创建一个index.js文件index.
- 建立cards_main文件:# _*_ coding:utf-8 _*_"""file: cards_mai
- 1.索引问题索引是数据库优化中最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数 的SQL性能问题。本章节将对MySQL中的索引
- 目录相关背景直方图计算法图像指纹与汉明距离平均哈希法(aHash)感知哈希算法(pHash)dHash算法在网上看到python做图像识别的
- golang中的string是可以转换为byte数组或者rune数组但是其实byte对应的类型是uint8,而rune对应的数据类型就是in
- 本文实例讲述了Python利用神经网络解决非线性回归问题。分享给大家供大家参考,具体如下:问题描述现在我们通常使用神经网络进行分类,但是有时
- 方法一: 在给出的输入CD-KEY(序列号)的界面中,输入你已经安装的windows server 2003 的CD-KEY(序列号)即可以
- 一、简单说明80、90后的小伙伴都玩过“俄罗斯方块”,那种“叱咤风云”场景 偶尔闪现在脑海 真的是太爽了;如果没有来得及玩过的同学,这次可以
- 实例如下所示:u = array([[1,2],[3,4]])m = u.tolist()#转换为listm.remove(m[0])#移除
- zip文件是我们经常使用的打包格式之一,python解压和压缩zip效率非凡。 python解压zip文档:#/usr/bin/python
- 一、绑定class属性的方式1、通过数组的方式,为元素绑定多个class<style> .red {
- 本文实例讲述了Python操作SQLite数据库的方法。分享给大家供大家参考,具体如下:SQLite简介SQLite,是一款轻型的数据库,是