当前位置: 首页 > news >正文

GO|经典错误之回车与\n

学习go的输入输出语句,于是在笔记本上写了这么一段代码:

func main() {reader := bufio.NewReader(os.Stdin)input, _ := reader.ReadString('\n')input = input[:len(input)-1]i, _:= strconv.Atoi(input)fmt.Println(i)
}

运行,输入99,回车,输出0。

gg

为什么呢?明明没有什么问题,然后把这段代码放到online go的网站上去跑,输出的是99。
online go网址:Online Go Compiler、在线运行Go

这真让人奇怪,虽然不知道是哪错了,但是总归是报错了,问问GPT,GPT说不知道,打印下报错信息吧:

func main() {reader := bufio.NewReader(os.Stdin)input, _ := reader.ReadString('\n')input = input[:len(input)-1]i, err := strconv.Atoi(input)if err != nil {fmt.Println(err)}fmt.Println(i)
}

 报错:strconv.Atoi: parsing "99\r\n": invalid syntax

这个\r\n是啥, 搜了一下,是Windows系统里面的回车,好家伙,原来问题出在这里了。

Linux系统里面回车是\n,但是Windows里面是\r\n,因此如果是使用   

input = input[:len(input)-1]

的方式去掉delim,那就会出错了,因此还是要使用相应的工具包才好,即使用

strings.TrimSpace(input)

这个方法就好了。

http://www.lryc.cn/news/151181.html

相关文章:

  • 【MATLAB第71期】基于MATLAB的Abcboost自适应决策树多输入单输出回归预测及多分类预测模型(更新中)
  • ARM编程模型-内存空间和数据
  • leetcode原题: 最大数
  • docker 是什么
  • 基于Gin框架的HTTP接口限速实践
  • WSL中为Ubuntu和Debian设置固定IP的终极指南
  • axios+vite配置反向代理踩坑记录
  • Spring IOC的理解
  • 2023年京东箱包行业数据分析(京东数据运营)
  • 对称加密 非对称加密 AC认证 https原理
  • 如何在PyQt应用程序中使用Qt Designer和Pyuic工具?
  • 【云计算•云原生】5.云原生之初识DevOps
  • 20230830工作心得:巧用标记位和For循环遍历
  • AUTOSAR规范与ECU软件开发(实践篇)7.9 MCAL模块配置方法及常用接口函数介绍之Can的配置
  • SpringBoot整合websockt实现消息对话
  • MIME类型(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展类型)MultipartFile 多媒体文件上传
  • 数据库(MySQL)的存储过程
  • Flutter:getX的学习
  • leetcode - 360周赛
  • Android 1.1 背景相关与系统架构分析
  • 系统架构技能之设计模式-抽象工厂模式
  • clangd的使用,实现跳转提示
  • 2023应届生java面试搞笑之一:CAS口误说成开心锁-笑坏面试官
  • nginx-concat
  • Java 大厂面试 —— 常见集合篇 List HashMap 红黑树
  • 剪枝基础与实战(5): 剪枝代码详解
  • Acwing 897. 最长公共子序列 (每日一题)
  • CSS中border-radius的来美化table的实战方案
  • 移除链表元素_每日一题
  • spring boot + Consul 示例 (Kotlin版)