Go语言标准输入输出库的基本使用教程

作者:良猿 时间:2023-08-25 19:44:11 

fmt

fmt是go语言中的格式化输入输出库,其中主要分为两个部分,分别是输出部分和输入部分。

输出

Print

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语言")
}

运行结果:

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, "写入成功")
}

运行结果:

Go语言标准输入输出库的基本使用教程

Go语言标准输入输出库的基本使用教程

以上代码成功将内容写入到了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)
}

运行结果:

Go语言标准输入输出库的基本使用教程

Errorf

Errorf是根据传入的内容格式化后返回一个包含该字符串的error。

func Errorf(format string, a ...interface{}) error

代码示例:

func main() {
a := "error"
error := fmt.Errorf("错误:%s", a)
fmt.Print(error)
}

运行结果:

Go语言标准输入输出库的基本使用教程

输入

在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)
}

运行结果:

Go语言标准输入输出库的基本使用教程

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

运行结果:

Go语言标准输入输出库的基本使用教程

使用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)
}

运行结果:

Go语言标准输入输出库的基本使用教程

例如上述的输入中,如果仅仅只是输入了姓名就换行,那么就会停止读取,但是在Scan中,如果输入姓名后换行不会停止读取还需要继续输入年龄后才会停止读取。

来源:https://juejin.cn/post/7063781069824196644

标签:go,标准库,输出
0
投稿

猜你喜欢

  • Python常见错误:IndexError: list index out of range解决

    2021-02-17 21:53:10
  • PHP代码加密和扩展解密实战

    2023-11-17 02:58:00
  • php快递单号查询接口使用示例

    2023-10-25 07:39:55
  • python实现文本界面网络聊天室

    2022-04-13 19:43:54
  • Vue中axios的封装(报错、鉴权、跳转、拦截、提示)

    2024-05-02 17:06:03
  • Javascript优化(文件瘦身)

    2008-06-02 13:20:00
  • 使用Python操作MySQL的小技巧

    2024-01-23 16:13:49
  • JS数组合并push与concat区别分析

    2024-04-22 22:40:09
  • 浅谈Python实现opencv之图片色素的数值运算和逻辑运算

    2022-06-11 15:58:50
  • python中的GUI实现计算器

    2022-04-18 02:29:05
  • 有关perl的内置特殊变量介绍

    2023-08-02 23:29:29
  • 使用Python的Flask框架表单插件Flask-WTF实现Web登录验证

    2021-03-31 12:42:31
  • 十分钟搞定pandas(入门教程)

    2023-08-09 01:00:15
  • EF(EntityFramework) 插入或更新数据报错的解决方法

    2024-01-20 19:21:42
  • jsp中select的onchange事件用法实例

    2024-04-19 09:58:23
  • 在阿里云服务器上配置CentOS+Nginx+Python+Flask环境

    2023-07-26 09:47:46
  • 手把手带你走进Go语言之类型转换

    2024-02-14 23:25:05
  • python爬虫selenium和phantomJs使用方法解析

    2023-02-06 19:23:38
  • mysql 常用命令集锦(Linux/Windows)

    2024-01-17 07:26:20
  • python使用imap-tools模块下载邮件附件的示例

    2023-09-16 08:39:38
  • asp之家 网络编程 m.aspxhome.com