使用C在终端的printf输出中获取奇怪的百分比符号

使用C在终端的printf输出中获取奇怪的百分比符号,c,printf,zsh,C,Printf,Zsh,在我的课程结束时,我有这个printf语句: printf("%d", total_candies); total_candies是一个int,虽然我希望一切都能正常工作,但实际数字也一样,但我在最后得到了一个奇怪的百分号。 有人能告诉我为什么会发生这种情况吗?当程序的(非空)输出不包含尾随换行符时,zsh会添加颜色反转的%,以指示该情况,并在打印提示之前移到下一行;它通常比bash的行为更方便,只是在输出结束的地方启动命令提示符。这可能是您的控制台提示符吗?尝试在输出中添加新行:print

在我的课程结束时,我有这个
printf
语句:

printf("%d", total_candies);
total_candies
是一个
int
,虽然我希望一切都能正常工作,但实际数字也一样,但我在最后得到了一个奇怪的百分号。


有人能告诉我为什么会发生这种情况吗?

当程序的(非空)输出不包含尾随换行符时,zsh会添加颜色反转的
%
,以指示该情况,并在打印提示之前移到下一行;它通常比bash的行为更方便,只是在输出结束的地方启动命令提示符。

这可能是您的控制台提示符吗?尝试在输出中添加新行:
printf(“%d\n”,total\u candies)请更新您的问题,以显示显示问题的完整程序。你怎么知道奇怪的百分比字符是由那个特定的语句打印出来的?这可能是您的shell提示符吗?我认为某些zsh默认配置为显示输出,而不显示最终换行符。快速测试:“echo-n hi”是否具有相同的行为?该字符是zsh提示符的一部分。@iharob:否,当程序的输出未以换行符结尾时,zsh打印该反向视频
%
字符。谢谢,我不知道zsh的这种行为。现在我想起来了,它确实比bash的行为更有用。