在C中使用printf时如何转义%符号?
printf("hello\%"); /* not like this */
在C中使用printf时如何转义%符号?
printf("hello\%"); /* not like this */
当前回答
你可以简单地使用两次%,即%%
例子:
printf("You gave me 12.3 %% of profit");
其他回答
双字符“%”也适用于“. format(…)”。 示例(iDrawApertureMask == 87, fCornerRadMask == 0.05): csCurrentLine.Format(“\ %添加% 2 d C %, % 6.4 f * \ %”,iDrawApertureMask, fCornerRadMask); 给出csCurrentLine中(字符串内容)的期望值和期望值; “% ADD87C, 0.0500 * %”
您可以通过发布两个'%'来转义它,就像这样:%%
举个例子:
printf("hello%%");
转义'%'符号只适用于printf。如果你有:
char a[5];
strcpy(a, "%%");
printf("This is a's value: %s\n", a);
这是a的值:%%
正如其他人所说,%%将转义%。
然而,请注意,你永远不应该这样做:
char c[100];
char *c2;
...
printf(c); /* OR */
printf(c2);
当你需要打印字符串时,总是,总是,总是使用
printf("%s", c)
防止嵌入的%引起问题(内存违规,分段错误等)。
吹毛求疵: 在指定printf()(和scanf())函数族格式的字符串中,实际上不需要转义%。
printf()(和scanf())函数族中的%开始一个转换规范。转换规范的规则之一规定,%作为转换说明符(紧跟在开始转换规范的%之后)会导致写入'%'字符时不转换参数。
字符串实际上有2个'%'字符(与转义字符相反:"a\bc"是一个包含3个非空字符的字符串;"a%%b"是一个包含4个非空字符的字符串)。
是这样的:
printf("hello%%");
//-----------^^ inside printf, use two percent signs together