Go标准库_fmt包

软件包 fmt 使用类似于 C 的 printf 和 scanf 的函数实现格式化的 I/O。

go版本每年更新两次

fmt 向外输出

Print系列函数

/*
Print系列
func Print(a ...interface{}) (n int, err error)
func Printf(format string, a ...interface{}) (n int, err error)
func Println(a ...interface{}) (n int, err error)
Print系列函数会将内容输出到系统的标准输出
Print 函数直接输出内容
Printf 函数支持格式化输出字符串
Println 函数会在输出内容的结尾添加一个换行符

*/
func main() {
	s := "wwq"
	fmt.Printf("我是%v", s)
	fmt.Print("为什么\n")
	fmt.Println("为什么")
}

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() {
	fmt.Fprintln(os.Stdout, "输出hello") //输出写入内容
	f, err := os.OpenFile("D:\\test.txt",
		os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
	if err != nil {
		fmt.Println("打开文件出错,err:", err)
		return
	}
	// 向打开的文件句柄中写入内容
	fmt.Fprint(f, "往文件中写hello")
}

Sprint系列函数

/*
Sprint系列函数会把传入的数据生成并返回一个字符串
func Sprint(a ...interface{}) string
func Sprintf(format string, a ...interface{}) string
func Sprintln(a ...interface{}) string
*/

func main() {
	name := "张三"
	s := fmt.Sprintf("我是%v", name)
	fmt.Println(s)
}

Errorf函数 

func main() {
	err := fmt.Errorf("错误")
	if err != nil {
		fmt.Println(err)
	}
}

fmt 获取输入

Scan系列


/*
Go语言fmt包下有fmt.Scan、fmt.Scanf、fmt.Scanln三个函数,可以在程序运行过程中从标准输入获取用户的输入。
func Scan(a ...interface{}) (n int, err error)
Scan从标准输入扫描文本,读取由空白符分隔的值保存到传递给本函数的参数中,换行符视为空白符。
本函数返回成功扫描的数据个数和遇到的任何错误。如果读取的数据个数比提供的参数少,会返回一个错误报告原因。

*/
func main() {
	var s string
	var s1 string
	fmt.Scan(&s, &s1)
	fmt.Printf("扫描结果%v %v\n", s, s1)
}

/*
func Scanf(format string, a ...interface{}) (n int, err error)
Scanf从标准输入扫描文本,根据format参数指定的格式去读取由空白符分隔的值保存到传递给本函数的参数中。
本函数返回成功扫描的数据个数和遇到的任何错误
*/
func main() {
	var s string
	var s1 string
	fmt.Scanf("1:%v 2:%v", &s, &s1)
	fmt.Printf("扫描结果%v %v\n", s, s1)

}


/*
func Scanln(a ...interface{}) (n int, err error)
Scanln类似Scan,它在遇到换行时才停止扫描。最后一个数据后面必须有换行或者到达结束位置。
本函数返回成功扫描的数据个数和遇到的任何错误。

*/
func main() {
	var s string
	var s1 string
	fmt.Scanln(&s, &s1)
	fmt.Printf("扫描结果%v %v\n", s, s1)
}

bufio.NewReader()


/*
bufio.NewReader()
有时候我们想完整获取输入的内容,而输入的内容可能包含空格,这种情况下可以使用bufio包来实现。
*/
func main() {
	reader := bufio.NewReader(os.Stdin) // 从标准输入生成读对象
	fmt.Print("请输入内容:")
	text, _ := reader.ReadString('\n') // 读到换行
	text = strings.TrimSpace(text)
	fmt.Printf("%#v\n", text)
}

Fscan系列

/*
这几个函数功能分别类似于fmt.Scan、fmt.Scanf、fmt.Scanln三个函数,只不过它们不是从标准输入中
读取数据而是从io.Reader中读取数据
func Fscan(r io.Reader, a ...interface{}) (n int, err error)
func Fscanln(r io.Reader, a ...interface{}) (n int, err error)
func Fscanf(r io.Reader, format string, a ...interface{}) (n int, err error)
*/
func main() {
	f, _ := os.Open("D:\\test.txt")
	var s string
	fmt.Fscan(f, &s)
	fmt.Printf("扫描结果%v\n", s)

}

Sscan系列

/*
Sscan系列
这几个函数功能分别类似于fmt.Scan、fmt.Scanf、fmt.Scanln三个函数,只不过它们不是从标准输入中
读取数据而是从指定字符串中读取数据
*/
func main() {
	var s string
	fmt.Sscan("张三", &s)
	fmt.Println(s)
}

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值