[go语言]输入输出

发布时间:2024年01月18日

目录

知识结构

输入

1.Scan

?编辑

2.Scanf

3.Scanln

4.os.Stdin --标准输入,从键盘输入

输出

1.Print

2.Printf

3.Println


知识结构

输入

为了展示集中输入的区别,将直接进行代码演示。

三者区别的结论:Scanf格式化输入;Scanln碰到换行符就退出了;

1.Scan

scan相对于scanln就没有回车键的限制,按回车,只要你的内容没有输入完毕,就会等你输入完:

package main
import "fmt"	

    func main(){
    var name string
	var passwd string
	fmt.Println("请输入用户名和密码:")
	fmt.Scan(&name, &passwd)
	fmt.Println(name, passwd)
	fmt.Println("请输入用户名:")
	fmt.Scan(&name) //&取地址符
	fmt.Println("请输入密码:")
	fmt.Scan(&passwd)
	fmt.Println(name, passwd)
}

2.Scanf

会进行格式化输入:

package main

import "fmt"

func main() {
	var name string
	var passwd string
	fmt.Println("请输入用户名和密码:")
	fmt.Scanf("a=%s b=%s", &name, &passwd)                //格式化输入
	fmt.Printf("name is %s,passwd is %s\n", name, passwd) //格式化输出
}

使用Scanf的时候要按照指定的格式输入才可以正确输出:

3.Scanln

package main

import "fmt"

func main() {
	var name string
	var passwd string
	fmt.Scanln(&name, &passwd) //碰到换行符就退出了
	fmt.Println("name is", name, "passwd is", passwd)
}

什么意思呢?就是再使用Scanln进行输入时,如果你敲回车了,就会判定你已经输入完毕,就会出现上面的错误结果。避免这种错误可以使用空格进行隔开:

综上,scan是最常用的输入命令。

4.os.Stdin --标准输入,从键盘输入

使用bufio包中的os.Stdin也可以进行标准输入:

package main

import (
	"bufio"
	"fmt"
	"os"
)
func main() {
	//窗机哪一个从键盘输入的对象   os.Stdin --标准输入,从键盘输入
	reader := bufio.NewReader(os.Stdin)
	content, e := reader.ReadString('\n')
	//判断e不为空,表示有错误产生
	if e != nil {
		fmt.Println("产生错误", e)
	} else {
		fmt.Println("获取到的内容:", content)
	}
}

这段代码中,有两个返回值:content和e,用content接收从键盘输入的内容,e用来判断是否产生错误,如果对e没有什么操作,可以用下划线取代;

e可以判断代码执行是否产生错误:通过判断e是否等于nil来判断,代码执行正确时,e=nil。

输出

三者的重要区别是:Printf可以格式化输出,需要自己加换行符\n;Println输出会自动加换行符,不能格式化输出;Print不会自动添加换行符和分隔符。

举例演示。

1.Print

package main
import "fmt"
func main(){
    var name string
    var passwd string
    fmt.Println("请输入用户名和密码:")
	fmt.Scanf("a=%s b=%s", &name, &passwd) //格式化输入
	fmt.Print(name, passwd)
}

这里的输出结果就是:

可以看到,这里的“root”与“123”之间是不会自动出现间隔符的,这就是Print的特点。

2.Printf

Printf在上面输入时也有出现,正如Scanf支持格式化输入一样,Printf支持格式化输出,使用Printf可以让结果按照你想要输出的形式展现。这里也不再详述,上面有例子

3.Println

在介绍输入符的时候使用的基本都是Println,它的特点就是输出之后会自动换行。这里就不再详述。

今天的内容就介绍到这里,如果有问题欢迎留言。

文章来源:https://blog.csdn.net/qq_57629191/article/details/135660069
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。