[go语言]输入输出

目录

知识结构

输入

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/330698.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

“深度剖析Nginx的高级部署“

深度剖析Nginx的高级部署与优化技巧 引言1. Nginx基础概念1.1 Nginx简介1.1.1 什么是Nginx?1.1.2 Nginx的特点与优势 2. Nginx部署安装MySQL运行java 总结 引言 在现代网络架构中,Nginx作为一款高性能的开源Web服务器,广泛应用于反向代理、负…

个人网站制作 Part 8 添加电子邮件通知与社交媒体集成 | Web开发项目

文章目录 👩‍💻 基础Web开发练手项目系列:个人网站制作🚀 添加电子邮件通知🔨使用Nodemailer🔧步骤 1: 安装Nodemailer 🚀 社交媒体集成🔨使用社交媒体API🔧步骤 2: 集成…

Springcloud+Vue智慧工地源码 AI智能识别

智慧工地解决方案 一、现状描述 建筑工程建设具有明显的生产规模大宗性与生产场所固定性的特点。建筑企业70%左右的工作都发生在施工现场,施工阶段的现场管理对工程成本、进度、质量及安全等至关重要。同时随着工程建设规模不断扩大,工艺流程纷繁复杂&…

通讯录(C语言版)(静态通讯录)

✨欢迎来到脑子不好的小菜鸟的文章✨ 🎈创作不易,麻烦点点赞哦🎈 所属专栏:项目 我的主页:脑子不好的小菜鸟 文章特点:关键点和步骤讲解放在 代码相应位置 引言: 1.菜单 通讯录也如同游戏&…

pyspark 笔记:窗口函数window

窗口函数相关的概念和基本规范可以见:pyspark笔记:over-CSDN博客 1 创建Pyspark dataFrame from pyspark.sql.window import Window import pyspark.sql.functions as F employee_salary [("Ali", "Sales", 8000),("Bob&qu…

JFlash工具将多个Bin文件或hex文件合并成一个(app+bootloader)

开发过程中,会遇到需要将多个bin文件合并成一个bin文件,尤其是需要将bootloader文件和App文件合并成一个文件。 1.使用version6.8下载地址:https://www.segger.com/downloads/jlink/ 2.芯片运行的起始地址:J-Flash工具可以根据选择的芯片类型…

el-date-picker默认结束为当前时分秒

在element ui中的日期时间选择组件中默认是00:00,现在需求是点击默认结束时间为当前时分秒,查了很多资料写的都不准确 需求:实现日期时间组件可选择当前日期,比如当前是2024年01月17号下午17:21 那选中时必须结束时间为17&#x…

JQuery 操作Class滚动轮播展示效果

JQuery 操作Class滚动轮播展示效果 展示效果&#xff1a; 1.html <div class"list"><div class"item"><div class"icon"></div><div class"content">第一行xxxxxxxxx</div></div><div …

图解第五代英特尔至强可扩展处理器

四年五节点&#xff0c;一年出两代。在年初推出代号Sapphire Rapids&#xff08;蓝宝石激流&#xff0c;SPR&#xff09;的第四代英特尔至强可扩展处理器之后&#xff0c;仅隔11个月&#xff0c;代号Emerald Rapids&#xff08;绿宝石激流&#xff0c;EMR&#xff09;的第五代英…

uniapp写微信小程序实现电子签名

写电子签名一定要注意的是一切全部按照手机上的适配来&#xff0c;为啥这么说呢&#xff0c;因为你在微信开发者工具中调试的时候认为是好的&#xff0c;正常的非常nice,当你发布版本的时候你会发现问题出来了。我下边的写法你可以直接用很简单。就是要记住canvas的几个属性和用…

CSC8021_computer network_The Application Layer

The Role of the Application layer The Application layer is the interface between the network and its users › It contains network services (e.g. DNS) › It contains user applications (e.g. email, web browsing&#xff09; Domain Name System (DNS) › The …

51单片机_智能家居终端

实物演示效果&#xff1a; https://www.bilibili.com/video/BV1bh4y1A7ZW/?vd_source6ff7cd03af95cd504b60511ef9373a1d 51单片机是否适合做多功能智能家居控制系统&#xff1f;51单片机的芯片是否具有与WiFi通信的能力&#xff1f;如果有的话&#xff0c;具体有哪些芯片啊&a…

安泰高压放大器设计的意义及其应用价值

高压放大器的设计是电子工程领域中的重要课题。其意义在于提供强大的放大能力&#xff0c;将高电压信号放大到所需的输出水平。高压放大器在多个领域具有广泛应用&#xff0c;包括科学研究、医疗设备、工业驱动和能量传输等。下面安泰电子将带来高压放大器设计的意义和其所带来…

豆瓣酱生产加工污水处理需要哪些工艺设备

酱生产加工工程中&#xff0c;污水处理是一个至关重要的环节。豆瓣酱作为一种传统的食品调料&#xff0c;由于其酱豆和辅料的混合&#xff0c;往往会产生大量的污水。为了实现环境友好型生产&#xff0c;保护我们的大自然&#xff0c;豆瓣酱生产厂家需要采用一些科学先进的工艺…

SpringBoot 2.x 正式停更了。Java 8 由 Solon 接收!

最近有好多个新闻说&#xff1a;SpringBoot 2.x 正式停更了&#xff0c;Java 8 怎么办&#xff1f;当然用 Solon 喽&#xff01; Solon&#xff0c;同时支持 jdk8, jdk11, jdk17, jdk21。也支持 graalvm native image。既支持 java8&#xff0c;也支持 java21 的&#xff1a; …

基于springboot+vue的网上订餐系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现Mono12和Mono16位深度的图像保存(C#)

Baumer工业相机堡盟工业相机如何联合BGAPI SDK和OpenCVSharp实现Mono12和Mono16位深度的图像保存&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机保存位深度12/16位图像的技术背景代码案例分享1&#xff1a;引用合适的类文件2&#xff1a;NEOAPI SDK联合OpenCV进行图…

centos7 arm服务器编译升级安装动态库libstdc++.so.6,解决GLIBC和CXXABI版本低的问题

前言 由于centos7内置的libstdc.so.6版本太低&#xff0c;导致安装第三方包的时候&#xff0c;会报“CXXABI_1.3.8”不存在等问题。 自带的打印如下&#xff1a; strings /usr/lib64/libstdc.so.6 | grep GLIBC strings /usr/lib64/libstdc.so.6 | grep CXXABI 如图 升级 注…

数据结构之串

数据结构之串 1、串的定义及基本运算2、串的存储结构3、串的模式匹配 数据结构是程序设计的重要基础&#xff0c;它所讨论的内容和技术对从事软件项目的开发有重要作用。学习数据结构要达到的目标是学会从问题出发&#xff0c;分析和研究计算机加工的数据的特性&#xff0c;以便…