[go语言]输入输出

目录

知识结构

输入

1.Scan

​编辑

2.Scanf

3.Scanln

[4.os.Stdin --标准输入,从键盘输入](#4.os.Stdin --标准输入,从键盘输入)

输出

1.Print

2.Printf

3.Println


知识结构

输入

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

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

1.Scan

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

Go 复制代码
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

会进行格式化输入:

Go 复制代码
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

Go 复制代码
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也可以进行标准输入:

Go 复制代码
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

Go 复制代码
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,它的特点就是输出之后会自动换行。这里就不再详述。

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

相关推荐
星火开发设计6 分钟前
C++ 函数定义与调用:程序模块化的第一步
java·开发语言·c++·学习·函数·知识
cypking10 分钟前
二、前端Java后端对比指南
java·开发语言·前端
钟离墨笺13 分钟前
Go语言--2go基础-->map
开发语言·后端·golang
lsx20240633 分钟前
DOM CDATA
开发语言
Tony Bai38 分钟前
Go 语言的“魔法”时刻:如何用 -toolexec 实现零侵入式自动插桩?
开发语言·后端·golang
Coding茶水间1 小时前
基于深度学习的交通标志检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
开发语言·人工智能·深度学习·yolo·目标检测·机器学习
a努力。1 小时前
字节Java面试被问:TCP的BBR拥塞控制算法原理
java·开发语言·python·tcp/ip·elasticsearch·面试·职场和发展
jiaguangqingpanda1 小时前
Day24-20260120
java·开发语言·数据结构
m0_502724951 小时前
飞书真机调试
开发语言·前端·javascript
qq_12498707532 小时前
基于小程序中医食谱推荐系统的设计(源码+论文+部署+安装)
java·spring boot·后端·微信小程序·小程序·毕业设计·计算机毕业设计