使用Go语言解决Scan空格结束输入问题

目录
  • 问题

问题

Go语言的输入Scan,无论是Scanf,还是Scanln还是其他,都是以空格结束输入的。

但是我们输入可能是带空格的。
比如 Fan One 666

Scan

var msg string
_,_ =fmt.Scan(&msg)
fmt.Printf(msg)

Scanf

var msg string
_,_ =fmt.Scanf("%s",&msg)
fmt.Printf(msg)

Scanln

var msg string
_,_ =fmt.Scanln(&msg)
fmt.Printf(msg)

可以看出三个都是这样,空格就结束了输入

解决

那我们就不能用Scan了,转用bufio的标准输入输出格式

var msg string
reader := bufio.NewReader(os.Stdin) // 标准输入输出
msg,_ = reader.ReadString('\n')  // 回车结束
msg = strings.TrimSpace(msg)    // 去除最后一个空格
fmt.Printf(msg)

问题解决了。

以上就是使用Go语言解决Scan空格结束输入问题的详细内容,更多关于Go解决Scan空格结束输入问题的资料请关注我们其它相关文章!

(0)

相关推荐

  • 解决Go语言数据库中null值的问题

    本文主要介绍如何使用go语言database/sql库从数据库中读取null值的问题,以及如何向数据库中插入null值.本文在这里使用的是sql.NullString, sql.NullInt64, sql.NullFloat64等结构体,为了方便书写,它们的泛指我会使用sql.Null***来表示 要点 从数据库读取可能为null值得值时,可以选择使用sql.NULL***来读取:或者使用IFNULL.COALESCE等命令让数据库查询值返回不为""或者NULL 若需要往数据库中插入

  • Go语言编程入门超级指南

    1.序言 Golang作为一门出身名门望族的编程语言新星,像豆瓣的Redis平台Codis.类Evernote的云笔记leanote等. 1.1 为什么要学习 如果有人说X语言比Y语言好,两方的支持者经常会激烈地争吵.如果你是某种语言老手,你就是那门语言的"传道者",下意识地会保护它.无论承认与否,你都已被困在一个隧道里,你看到的完全是局限的.<肖申克的救赎>对此有很好的注脚: [Red] These walls are funny. First you hate 'em,

  • 解决Go gorm踩过的坑

    使用gorm.Model后无法查询数据 Scan error on column index 1, name "created_at" 提示: Scan error on column index 1, name "created_at": unsupported Scan, storing driver.Value type []uint8 解决办法: 打开数据库的时候加上parseTime=true root:123456@tcp(127.0.0.1:3306)

  • 详解golang碎片整理之 fmt.Scan

    本文介绍了从golang语言中fmt包从标准输入获取数据的Scan系列函数.从io.Reader中获取数据的Fscan系列函数以及从字符串中获取数据的Sscan系列函数的用法. Scan系列 go语言fmt包下有fmt.Scan.fmt.Scanf.fmt.Scanln三个函数,可以在程序运行过程中从标准输入获取用户的输入. fmt.Scan 语法 func Scan(a ...interface{}) (n int, err error) Scan 从标准输入扫描文本,读取由空白符分隔的值保存

  • 完美解决go Fscanf 在读取文件时出现的问题

    先要明白Fscanf的工作原理 Fscanf在遇到\n才结束 遇到\r时就会把\r替换成0 这就有个问题,要注意自己的文本换行符是什么,在Windows下就是\r\n,在Linux,Mac下就是\n,也就是说这里有个坑, 代码在Linux和Mac下读取数据文件是正常的,在Windows下就会遇到各种行末尾有个0,网上办法用什么替换啊,用什么自定义Scan函数啊,太麻烦了,直接使用自带IDE将打开的数据文件集换行符改成LF(Linux,Mac换行符)就行了 如下图Idea 文件右下角LF点击就可以

  • 使用Go语言解决Scan空格结束输入问题

    目录 问题 问题 Go语言的输入Scan,无论是Scanf,还是Scanln还是其他,都是以空格结束输入的. 但是我们输入可能是带空格的. 比如 Fan One 666 Scan var msg string _,_ =fmt.Scan(&msg) fmt.Printf(msg) Scanf var msg string _,_ =fmt.Scanf("%s",&msg) fmt.Printf(msg) Scanln var msg string _,_ =fmt.Sc

  • 解决C语言中使用scanf连续输入两个字符类型的问题

    昨天用C编程,遇到一个关于scanf的细节问题,假如运行如下程序: #include<stdio.h> int main() { char ch1,ch2; printf("Input for ch1:/n"); scanf("%c",&ch1); printf("ch1=%c/n",ch1); printf("Input for ch2:/n"); scanf("%c",&ch

  • java输入时如何通过回车(enter)来结束输入

    目录 输入时通过回车(enter)来结束输入 解决办法 java回车结束输入一行 发现该解法 输入时通过回车(enter)来结束输入 在编写java程序的时候,我们想通过输入回车来完成这一行的输入,这是一个非常常见的问题,但是如果我们是用Scanner ,然后通过nextInt()方法调用的时候,不会停止输入,回打出一个空行,然后等着你继续输入下一个数字. 解决办法 我们可以设置两个Scanner 第一个以行为单位读取数据,这样就相当于是用回车(enter)当作结束符, 然后把读取到的字符串传入

  • C语言解决青蛙跳台阶问题(升级版)

    目录 1. 基础问题 题目描述 解题思路 代码实现 2. 问题升级 题目描述 解题思路 代码实现 3. 特性总结 1. 基础问题 题目描述 一只青蛙一次可以跳上 1 级台阶,也可以跳上 2 级.求该青蛙跳上一个 n 级的台阶总共有多少种跳法. 诺,就像下面这样 解题思路 其实我一看到这道题,我也是懵的,不知道从哪里着手分析,那我们就从最简单的情况开始分析. 假如 n = 1,一共有一级台阶,显然就只有一种跳法 一次跳1阶: 假如 n = 2,一共有两级台阶,共有两种跳法 跳1阶,再跳1阶 跳2阶

  • C语言中的多行输入问题及说明

    目录 一.未明确具体输入行数 1.~scanf方式 2.EOF 3.根据输入元素的个数 二.已知具体输入行数 总结 牛客网和LeetCode的竞赛题中经常会遇到多行输入,以前不熟悉这种写程序的方式,初次接触时输入值会有很多问题. 多行输入有下面这些常用方法: 一.未明确具体输入行数 没有确定的输入行数时,一般要采用Ctrl+Z结束输入,系统会自动输入这些,我们要做的是设置好循环条件即可. 具体是每次输入都产生结果还是所有输入完以后再输出结果要看题目要求. 如:输入多个字符串,保存在二维数组中,可

  • jQuery如何解决IE输入框不能输入的问题

    在IE10以上版本,微软为了提高IE输入框的便利性,增加了文本内容全部删除和密码眼睛功能,但是有些时候打开新的页面里,输入框却被锁定无法编辑,需要刷新一下页面,或者如果输入框有内容需要点击一下输入框后面的叉叉后才能输入.但是我们需要的是当下需要输入内容.那怎么办呢?可以用下面的方法解决: $("input[type='text']").each(function () { $(this).focus(function () { $(this).select(); }); }); $(&

  • 用jquery快速解决IE输入框不能输入的问题

    在IE10以上版本,微软为了提高IE输入框的便利性,增加了文本内容全部删除和密码眼睛功能,但是有些时候打开新的页面里,输入框却被锁定无法编辑,需要刷新一下页面,或者如果输入框有内容需要点击一下输入框后面的叉叉后才能输入.但是 我们需要的是当下需要输入内容.那怎么办呢? 以用下面的方法解决: $("input[type='text']").each(function () { $(this).focus(function () { $(this).select(); }); }); $(

  • 解决Keras中CNN输入维度报错问题

    想要写分类器对图片进行分类,用到了CNN.然而,在运行程序时,一直报错: ValueError: Negative dimension size caused by subtracting 5 from 1 for 'conv2d_1/convolution' (op: 'Conv2D') with input shapes: [?,1,28,28], [5,5,28,30]. 这部分提到的代码是这样的,这是我的分类器的输入层: model.add(Conv2D(30,(5, 5), input

  • 正则表达式解决input框固定输入值得格式(金额,特殊字符)

    在写输入用到input的时候,经常出现以下几种情况: 只能输入某.栗子:只能输入数字,只能输入字母(大写,小写)只能输入某固定格式.栗子:只能输入金额,只能输入小数且最多保留2位不能输入某.栗子:不能输入特殊字符,如"@#¥%&*"等 这种情况下,就需要直接在input上进行限制,在前端的应用中主要是用正则表达式来解决这些问题的 第一种情况:只能输入某 <template> <div id="app"> {{value}} <e

  • 详解C语言解决经典问题之兔子产子

    目录 1. 问题描述 2. 题目分析 3. 算法设计 4. 代码实现 5. 算法升级 1. 问题描述 有一对兔子,从出生后的第 3 个月起每个月都生一对兔子. 小兔子长到第 3 个月后每个月又生一对兔子,假设所有的兔子都不死,问 30 个月内每个月的兔子总数为多少? 2. 题目分析 这是一个有趣的古典数学问题,我们画一张表来找一下兔子数的规律吧 Tip:不满 1 个月的兔子为小兔子,满 1 个月不满 2 个月的为中兔子,满3个月以上的为老兔子. 可以看出,每个月的兔子总数依次为 1,1,2,3,

随机推荐