在C中使用printf时如何转义%符号?
printf
printf("hello\%"); /* not like this */
你可以通过像这样的双'%'来转义它:%%
%%
举个例子:
printf("hello%%");
转义'%'符号仅适用于printf。如果你有:
char a[5]; strcpy(a, "%%"); printf("This is a's value: %s\n", a);
它将打印:This is a's value: %%
This is a's value: %%
与自身……
printf("hello%%"); /* like this */
使用双%%:
如果字符串中没有格式,可以使用puts(或fputs):
puts
fputs
puts("hello%");
如果字符串中有格式:
printf("%.2f%%", 53.2);
正如注释中所指出的,puts将\n附加到输出,而fputs则没有。
\n
正如其他人所说,%%将转义%。
然而,请注意,你永远不应该这样做:
char c[100]; char *c2; ... printf(c); /* OR */ printf(c2);
当你需要打印字符串时,总是,总是,总是使用
printf("%s", c)
防止嵌入的%引起问题(内存违规,分割的缺点等)。
C语言中的反斜杠用于转义字符串中的字符。字符串不会将%识别为特殊字符,因此不需要转义。printf是另一回事:使用%%打印一个%。
%
是这样的:
printf("hello%%"); //-----------^^ inside printf, use two percent signs together
printf()
scanf()
%,在printf()(和scanf())函数族中,开始一个转换规范。转换规范的规则之一规定,%作为转换说明符(紧跟在开始转换规范的%之后)会导致'%'字符被写入而不转换参数。
'%'
字符串真的内有2个'%'字符(与转义字符相反:"a\bc"是一个包含3个非空字符的字符串;"a%%b"是一个包含4个非空字符的字符串)。
"a\bc"
"a%%b"
是的,使用printf("hello%%");就完成了。
您使用的格式说明符不正确。你应该使用%%来打印%。你的代码应该是:
阅读更多C语言中使用的所有格式说明符。
你可以简单地使用%两次,即"%%"
"%%"
例子:
printf("You gave me 12.3 %% of profit");
你可以使用%%:
printf("100%%");
结果是:
100%
两个“%”也适用于“. format(…)”。 示例(iDrawApertureMask == 87, fCornerRadMask == 0.05): csCurrentLine.Format("\%ADD%2d%C,%6.4f*\%",iDrawApertureMask,fCornerRadMask) ; 给出csCurrentLine中(字符串内容)的期望值和期望值; “% ADD87C, 0.0500 * %”< / p >
csCurrentLine.Format("\%ADD%2d%C,%6.4f*\%",iDrawApertureMask,fCornerRadMask) ;