我的程序末尾有这样的
printf
声明:
printf("%d", total_candies);
total_candies
是一个int
,虽然我希望一切都能正常工作,以及实际的数字,但我在最后得到了一个奇怪的百分号。
谁能告诉我为什么会这样?
当程序的(非空)输出不包含尾随换行符时,zsh 会添加颜色反转的
%
来指示这一点,并在打印提示之前移动到下一行;它通常比 bash 的行为更方便,只需在输出结束的地方启动命令提示符即可。
在命令行中运行
PROMPT_EOL_MARK=''
可以修复此问题。
在
zsh
PROMPT_SP
尝试保留部分行(即不以换行符结尾的行),否则由于 PROMPT_CR
选项,该行将被命令提示符覆盖。这是通过输出一些光标控制字符(包括一系列空格)来实现的,当存在部分行时,这些字符应该使终端换行到下一行(请注意,只有当您的终端具有自动边距(这是典型的)时,这才会成功) .
保留部分线条时,默认情况下您将看到一个
inverse+bold character at the end of the partial line
:‘%’
代表 normal user
或 ‘#’
代表 root
。如果设置,shell 参数 PROMPT_EOL_MARK
可用于自定义部分行末尾的显示方式。