关于使用bufio进行读取输入字符串后,%s后面的字符会覆盖前面的问题。

amazingdyd · · 1047 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

```go package main import ( "bufio" "fmt" "os" ) func main() { fmt.Println("Please input your name:") inputReader := bufio.NewReader(os.Stdin) input, err := inputReader.ReadString('\n') if err != nil { fmt.Println("There ware errors reading,exiting program.") os.Exit(1) } else { input = input[:len(input)-1] fmt.Printf("Hello, %s!\n", input) //这里输出时,%s后面的叹号会跑到第一个去 } } ``` 程序运行: Please input your name: aaa //输入aaa !ello, aaa //程序响应,应该是Hello,aaa!,但是!却覆盖了H,这是为什么? 发现问题了。。 使用%#v代替%s,会输出aaa\r,这个自动在我的换行符那里加了个\r 用input = input[:len(input)-2]问题修复!

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1047 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传