前言:
在编程过程中,键盘输入和打印输出是基础而重要的操作。本文将介绍如何使用Go语言的fmt包进行打印输出,以及如何从键盘获取输入。通过学习这些知识,你将能够更加灵活地处理用户输入和输出信息,提升程序的交互性和可读性。
摘要:
本文将详细介绍打印输出和键盘输入的相关内容。首先,我们将深入研究fmt包,探讨其在打印输出中的作用和常用函数。接着,我们将学习如何导入包,确保代码正确运行。最后,我们将介绍如何利用fmt包和bufio包从键盘获取输入。通过本文的学习,你将能够熟练地处理打印输出和键盘输入,为编程工作提供便利。
Go键盘输入和打印输出一、打印输出
1.1 fmt包
fmt包是Go语言中用于格式化输入和输出的标准库包。它提供了一系列函数和方法,可以方便地进行打印输出操作。
当使用Go语言进行打印输出时,可以使用fmt包来进行格式化输出。fmt是一个标准库包,提供了各种函数和方法来处理格式化输出的需求。
下面是fmt包中一些常用的函数和方法的详细解释:
func Print(a ...interface{}) (n int, err error)
func Println(a ...interface{}) (n int, err error)
func Printf(format string, a ...interface{}) (n int, err error)
func Sprint(a ...interface{}) string
func Sprintln(a ...interface{}) string
func Sprintf(format string, a ...interface{}) string
这些函数和方法提供了灵活的打印输出方式,可以根据不同的需求选择合适的函数来完成格式化输出操作。
fmt包实现了类似C语言printf和scanf的格式化I/O。格式化verb(‘verb’)源自C语言但更简单。
详见官网fmt的API:https://golang.google.cn/pkg/fmt/
1.2 导入包
在使用fmt包进行打印输出之前,需要先导入该包。导入包的语法如下:
import "fmt"
1.3 常用打印函数
fmt包提供了多个常用的打印函数,以下是其中几个常用的函数:
PrintPrintlnPrintfSprintSprintlnSprintf
打印:
格式化打印:
打印后换行
格式化打印中的常用占位符:
格式化打印占位符:
%v,原样输出
%T,打印类型
%t,bool类型
%s,字符串
%f,浮点
%d,10进制的整数
%b,2进制的整数
%o,8进制
%x,%X,16进制
%x:0-9,a-f
%X:0-9,A-F
%c,打印字符
%p,打印地址
示例代码:
package main
import (
"fmt"
)
func main() {
a := 100 //int
b := 3.14 //float64
c := true // bool
d := "Hello World" //string
e := `Ruby` //string
f := 'A'
fmt.Printf("%T,%b\n", a, a)
fmt.Printf("%T,%f\n", b, b)
fmt.Printf("%T,%t\n", c, c)
fmt.Printf("%T,%s\n", d, d)
fmt.Printf("%T,%s\n", e, e)
fmt.Printf("%T,%d,%c\n", f, f, f)
fmt.Println("-----------------------")
fmt.Printf("%v\n", a)
fmt.Printf("%v\n", b)
fmt.Printf("%v\n", c)
fmt.Printf("%v\n", d)
fmt.Printf("%v\n", e)
fmt.Printf("%v\n", f)
}
运行结果:
二、键盘输入
2.1 fmt包读取键盘输入
fmt包提供了一些函数可以读取键盘输入。常用的函数有:
ScanScanlnScanf
这些函数都需要传入指定变量的地址作为参数,以便将读取的数据存储到指定的变量中。
常用方法:
package main
import (
"fmt"
)
func main() {
var x int
var y float64
fmt.Println("请输入一个整数,一个浮点类型:")
fmt.Scanln(&x,&y)//读取键盘的输入,通过操作地址,赋值给x和y 阻塞式
fmt.Printf("x的数值:%d,y的数值:%f\n",x,y)
fmt.Scanf("%d,%f",&x,&y)
fmt.Printf("x:%d,y:%f\n",x,y)
}
运行结果:
2.2 bufio包读取
https://golang.google.cn/pkg/bufio/
除了使用fmt包进行键盘输入外,还可以使用bufio包进行键盘输入操作。bufio包提供了一些功能更强大的函数,可以更方便地进行键盘输入操作。
首先需要导入bufio包,导入语法如下:
import "bufio"
常用的函数有:
NewScannerScanText
这些函数的使用方式可以根据具体需求选择,通过Scanner对象可以更灵活地进行键盘输入操作。
bufio包中都是IO操作的方法:
先创建Reader对象:
然后就可以各种读取了:
示例代码:
package main
import (
"fmt"
"os"
"bufio"
)
func main() {
fmt.Println("请输入一个字符串:")
reader := bufio.NewReader(os.Stdin)
s1, _ := reader.ReadString('\n')
fmt.Println("读到的数据:", s1)
}
运行效果:
源码解释:
fmt.Printlnbufio.Readerreaderos.Stdinreader.ReadString('\n')s1fmt.Println
这段代码通过使用bufio包提供的缓冲读取功能,可以实现更高效和方便的键盘输入操作。用户在标准输入中输入一个字符串,按下回车键表示输入结束,然后该字符串就会被读取到并打印输出。
bufio包 拓展
bufio包提供了对输入输出进行缓冲处理的功能,它可以更高效地读取和写入数据。下面是bufio包的一些常用函数和使用案例:
func NewScanner(r io.Reader) *Scanner
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
fmt.Println("Enter your name:")
scanner.Scan() // 读取输入的一行数据
name := scanner.Text() // 获取输入的文本内容
fmt.Println("Hello,", name)
}
func (s *Scanner) Scan() bool
func (s *Scanner) Text() string
func (s *Scanner) Split(split SplitFunc)
package main
import (
"bufio"
"fmt"
"strings"
)
func main() {
input := "Hello,World"
scanner := bufio.NewScanner(strings.NewReader(input))
scanner.Split(bufio.ScanWords) // 使用空格作为分隔符
for scanner.Scan() {
fmt.Println(scanner.Text()) // 逐行打印输出拆分后的内容
}
}
Writer
总结:
键盘输入和打印输出是编程中不可或缺的基础操作。通过学习本文介绍的知识点,你已经掌握了使用Go语言进行打印输出和键盘输入的技巧。在实际的编程工作中,你可以根据具体需求,灵活运用这些知识,提高代码的质量和可读性。希望本文能够对你的学习和工作有所帮助,祝你编程愉快!
结语通过今天的学习,您已经踏上了Golang的学习之旅。在未来的日子里,您将探索Golang的各个方面,从基础概念到高级技巧,从实际应用到性能优化。
学习一门编程语言是一个持续的过程,每一天都是您向Golang的精通迈进的重要一步。我鼓励您坚持每天学习,保持热情和好奇心,解决挑战并享受成功的喜悦。
在您的学习旅程中,不要忘记参与社区和与其他Golang开发者交流。分享您的见解和经验,向他人学习,并在开源项目或实际应用中展示您的技能。
如果您在学习过程中遇到困难或有任何问题,不要犹豫向社区和专家寻求帮助。持续学习,勇敢探索,您将在Golang领域取得令人瞩目的成就。
最后,感谢您的阅读和支持!祝愿您在未来的每一天中都能够成为一名精通Golang的开发者!
期待听到您在学习过程中的进展和成就。如果您需要进一步的帮助,请随时告诉我。祝您在学习Golang的旅程中取得巨大成功!
如果您在学习过程中有任何疑惑,请点击下方名片,带您一对一快速入门 Go语言 的世界 ~