Golang Go语言中 Printf 输出的字符串末尾被自动增加了一个百分号,如何去除?
fmt.Printf("请输入开始时间和结束时间。格式: %s startDate=2017-12-07 endDate=2017-12-10", os.Args[0])
期望的输出内容为:
请输入开始时间和结束时间。格式: ./mongo2mysql startDate=2017-12-07 endDate=2017-12-10
但是实际上在 Linux 和 Mac 的终端输出的内容都是:
请输入开始时间和结束时间。格式: ./mongo2mysql startDate=2017-12-07 endDate=2017-12-10%
如何把末尾的百分号去掉?
Golang Go语言中 Printf 输出的字符串末尾被自动增加了一个百分号,如何去除?
更多关于Golang Go语言中 Printf 输出的字符串末尾被自动增加了一个百分号,如何去除?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
13 回复
linux 实测没有百分号。
更多关于Golang Go语言中 Printf 输出的字符串末尾被自动增加了一个百分号,如何去除?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
mac 实测没有百分号
用的 zsh
这各百分号是终端显示的换行吧
这个貌似与终端有关,我在用 zsh 时就发现运行程序时如果输出末尾没有新的空行,会打出一个 % 作为提示。你可以尝试用输出重定向 > 将标准输出放到一个文件里,再打开看看是不是还有 %
我猜是终端检测到没有换行符所以现实的那个 %
你加个 \n 试试
zsh 是个 shell,并不是终端
这个 % 是你的终端的 prompt。
原因是你这个少输出了个回车,所以输出内容跟新的 prompt 在同一行了。
这里应该是:
fmt.Printf(“请输入开始时间和结束时间。格式: %s startDate=2017-12-07 endDate=2017-12-10\n”, os.Args[0])
确实我有 zsh。可能是这个问题。
…
哈哈哈