在C中使用printf时如何转义%符号?

printf("hello\%"); /* not like this */

当前回答

你可以简单地使用两次%,即%%

例子:

printf("You gave me 12.3 %% of profit");

其他回答

使用双%%:

printf("hello%%");

与自身……

printf("hello%%"); /* like this */

你可以简单地使用两次%,即%%

例子:

printf("You gave me 12.3 %% of profit");

吹毛求疵: 在指定printf()(和scanf())函数族格式的字符串中,实际上不需要转义%。

printf()(和scanf())函数族中的%开始一个转换规范。转换规范的规则之一规定,%作为转换说明符(紧跟在开始转换规范的%之后)会导致写入'%'字符时不转换参数。

字符串实际上有2个'%'字符(与转义字符相反:"a\bc"是一个包含3个非空字符的字符串;"a%%b"是一个包含4个非空字符的字符串)。

C语言中的反斜杠用于转义字符串中的字符。字符串不会将%识别为特殊字符,因此不需要转义。Printf则是另一回事:使用%%来打印一个%。