如何在C语言中使用printf()时移除输出末尾多余的"%"符号
这个特殊显示的%不是你的C程序输出的内容,是zsh、fish等现代shell的默认行为:当程序输出的内容末尾没有换行符时,shell为了避免提示符和程序输出挤在同一行难以区分,会主动在程序输出末尾追加一个反显的%标识,再把shell提示符换到下一行显示。
解决方法
- 最通用也最符合编程规范的方案,是在
printf输出的字符串末尾加上换行符\n,修改后代码如下:
#include <stdio.h> int main(){ printf("hello world\n"); }
修改后程序输出会自带换行,shell的提示符会正常显示在输出内容的下一行,不会再出现额外的%。
- 如果你确实有业务需求不能输出末尾的换行,也可以修改对应shell的配置关闭该提示标识,但该方案需要适配运行环境,不推荐常规场景使用。
内容的提问来源于stack exchange,提问作者ecjb
相关产品推荐
相关产品推荐

