返回顶部
分享到

Go fmt包中Scan获取标准输入方式

Golang 来源:互联网 作者:佚名 发布时间:2025-08-22 18:06:47 人浏览
摘要

Go fmt包下有三个函数 可以在程序运行过程中获取用户输入。 fmt.Scan:获取输入 fmt.Scanf:获取输入,但是可以指定格式,go会根据格式解析参数 fmt.Scanln:获取一行的输入,只会获取到一行。 示

Go fmt包下有三个函数

可以在程序运行过程中获取用户输入。

  • fmt.Scan:获取输入
  • fmt.Scanf:获取输入,但是可以指定格式,go会根据格式解析参数
  • fmt.Scanln:获取一行的输入,只会获取到一行。

示例1

我们需要和gates和jobs问个好,代码:

1

2

3

4

fmt.Println("Please enter your names")

var a1, a2 string

fmt.Scan(&a1, &a2)

fmt.Println("hello,", a1, "and", a2)

运行后,在窗口中输入:gates jobs

输出:

hello, gates and jobs

可以看出,go把输入的参数按空格分开后,分别赋值给了a1和a2。

整体运行结果(第二行是运行时用户输入的):

Please enter your names
gates jobs
hello, gates and jobs

如果我们输入时换行输入:

Please enter your names
gates
jobs
hello, gates and jobs

可以看出gates和jobs中间是敲了回车的,这是Scan和Scanln的区别。Scan回车还可以继续接受,Scanln只要收到回车就不会继续接收输入了。

示例2

Scanln和Scan非常类似,只是Scanln只会接受一个回车,收到回车就扫描结束了。 

1

2

3

var c1, c2 string

fmt.Scanln(&c1, &c2)

fmt.Println("hello,", c1, "and", c2)

运行结果:

Please enter your names
gates jobs
hello, gates and jobs

如果换行输入,结果是:

Please enter your names
gates
hello, gates and

因为输入了gates后,回车,结果就打印出来了,没机会再输入jobs了,和Scan函数不一样。 

示例3

1

2

3

4

fmt.Println("Please enter your names")

var b1, b2 string

fmt.Scanf("%s , %s", &b1, &b2)

fmt.Println("hello,", b1, "and", b2)

运行结果:

Please enter your names
gates , jobs
hello, gates and jobs

上面的示例,需要注意两点:

1、Scanf中间有一个逗号,但逗号和%s间有空格,因为Scanf是用空格来区分不同的参数的。

2、输入的参数gates , jobs格式与Scanf中指定的fmt要一致。

3、中间的逗号,Scanf会自动格式匹配不会添加到变量中 


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。

您可能感兴趣的文章 :

原文链接 :
    Tag :
相关文章
  • Go实现完全静态编译和交叉编译的代码
    Go 语言天生支持跨平台编译,并且其标准库几乎不依赖系统动态库,所以在大多数场景下,它编译出来的二进制文件几乎可以直接丢到任何
  • Go语言编译环境设置教程

    Go语言编译环境设置教程
    Go语言优势 天生支持高并发 可以自由的去控制其并发量,也就是携程,通过go routine关键字就行了。 自动垃圾回收机制 内存的清理 不需要环
  • Go fmt包中Scan获取标准输入方式
    Go fmt包下有三个函数 可以在程序运行过程中获取用户输入。 fmt.Scan:获取输入 fmt.Scanf:获取输入,但是可以指定格式,go会根据格式解析参
  • go中空接口的具体使用
    接口-空接口 1. 什么是空接口? 空接口是特殊形式的接口类型,普通的接口都有方法,而空接口没有定义任何方法口,也因此,我们可以说
  • 快速解除oracle dataguard的方法

    快速解除oracle dataguard的方法
    有些时候,我们为了使oracle dg的standby库另做他用,需要解除oracle dataguard数据同步。我本地因为standby库存储出现故障,导致dg存在问题,故需
  • Go 1.23中Timer无buffer的实现方式介绍
    在 Go 1.23 中,Timer 的实现通常是通过 time 包提供的 time.Timer 类型来实现的。Timer 是一个用于在指定时间后触发一次事件的计时器。Timer 的实
  • golang之 wire 库的使用介绍
    1. 写在最前面 之前 review 其他人的代码的时候,看到了关于 wire 库的使用。但当时主要是分析逻辑上的问题,没怎么太学习 wire 库的用法,
  • golang panic 函数用法介绍
    在 Go 语言中,panic和recover是用于处理运行时异常的关键字。以下是它们的用法总结和示例: 1. panic 的作用 触发条件:当程序遇到无法恢复
  • Go中sync.Once源码的深度介绍
    概念 sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次。它在多线程环境中非常有用,尤其是在需要初始化共享资源
  • 基于Go语言实现一个压测工具

    基于Go语言实现一个压测工具
    整体架构 整体系统架构比较简单 通用数据处理模块 Http请求响应数据处理 本项目支持http协议、websocket协议、grpc协议、Remote Authentication Di
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计