golang语言格式化输入输出fmt包使用(I/O)

本文介绍了 Go 语言 fmt 包的使用,包括 Errorf、Fprint、Fprintf、Fprintln、Fscan 等一系列函数,用于格式化 I/O 操作。这些函数支持从 io.Reader 和 io.Writer 进行读写,同时提供了类似 C 语言 printf 和 scanf 系列的功能。
摘要由CSDN通过智能技术生成

包 fmt 实现格式化的 I/O,其功能类似于 C 的 printf 和 scanf。

目录

func Errorf(format string, a ...any) error

func Fprint(w io.Writer, a ...any) (n int, err error)

func Fprintf(w io.Writer, format string, a ...any) (n int, err error)

func Fprintln(w io.Writer, a ...any) (n int, err error)

func Fscan(r io.Reader, a ...any) (n int, err error)

func Fscanf(r io.Reader, format string, a ...any) (n int, err error)

func Fscanln(r io.Reader, a ...any) (n int, err error)

func Print(a ...any) (n int, err error)

func Printf(format string, a ...any) (n int, err error)

func Println(a ...any) (n int, err error)

func Scan(a ...any) (n int, err error)

func Scanf(format string, a ...any) (n int, err error)

func Scanln(a ...any) (n int, err error)

func Sprint(a ...any) string

func Sprintf(format string, a ...any) string

func Sprintln(a ...any) string

func Sscan(str string, a ...any) (n int, err error)

func Sscanf(str string, format string, a ...any) (n int, err error)

func Sscanln(str string, a ...any) (n int, err error)


func Errorf(format string, a ...any) error

Errorf 函数允许我们使用格式设置功能来创建描述性错误消息 

package main

import (
	"fmt"
)

func main() {
	const name, id = "Tim", 17
	err := fmt.Errorf("user %q (id %d) not found", name, id)
	fmt.Println(err.Error())
}

终端输出:
user "Tim" (id 17) not found

func Fprint(w io.Writer, a ...any) (n int, err error)

Fprint 格式使用其操作数的默认格式并写入 w。当两者都不是字符串时,会在操作数之间添加空格。它返回写入的字节数和遇到的任何写入错误

package main

import (
	"fmt"
	"os"
)

func main() {
	const name, age = "小王", 22
	n, err := fmt.Fprint(os.Stdout, name, "年龄是", age, "岁\n")

	// Fprint的n和err返回值是
	// 构成io返回的值
	if err != nil {
		fmt.Fprintf(os.Stderr, "Fprint: %v\n", err)
	}
	fmt.Print(n, " bytes written.\n")

}

终端输出:
小王年龄是22岁
21 bytes written.

func Fprintf(w io.Writer, format string, a ...any) (n int, err error)

Fprintf 根据格式说明符进行格式设置格式,并写入 w。它返回写入的字节数和遇到的任何写入错误

package main

import (
	"fmt"
	"os"
)

func main() {
	const name, age = "小王", 22
	n, err := fmt.Fprintf(os.Stdout, "%s 的年龄是 %d 岁。\n", name, age)

	// Fprintf的n和err返回值是
	// 构成io返回的值
	if err != nil {
		fmt.Fprintf(os.Stderr, "Fprintf: %v\n", err)
	}
	fmt.Printf("%d bytes written.\n", n)

}
终端输出:
小王 的年龄是 22 岁。
30 bytes written.

func Fprintln(w io.Writer, a ...any) (n int, err error)

Fprintln 使用其操作数的默认格式进行格式化,并写入 w。始终在操作数之间添加空格,并附加换行符。它返回写入的字节数和遇到的任何写入错误。

package main

import (
	"fmt"
	"os"
)

func main() {
	const name, age = "小王", 22
	n, err := fmt.Fprintln(os.Stdout, name, "的年龄是", age, "岁")

	// Fprintln的n和err返回值是
	// 构成io返回的值
	if err != nil {
		fmt.Fprintf(os.Stderr, "Fprintln: %v\n", err)
	}
	fmt.Println(n, "bytes written.")

}
终端输出:
小王 的年龄是 22 岁
27 bytes written.

func Fscan(r io.Reader, a ...any) (n int, err error)

Fscan 扫描从 r 读取的文本,将连续的空格分隔值存储到连续的参数中。换行符计为空格。它返回成功扫描的项目数。如果这少于参数数,则错误将报告原因。

package main

import (
	"fmt"
	"os"
	"strings"
)

func main() {
	var a, b, c string
	r := strings.NewReader("5 true gophers")
	n, err := fmt.Fscan(r, &a, &b, &c)
	if err != nil {
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值