如何逃避C的printf%(百分号)?
在C中使用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: %% 
正如其他人所说,%%将逃避%。
但是,请注意,你不应该这样做:
 char c[100]; char *c2; ... printf(c); /* OR */ printf(c2); 
无论何时必须打印string,始终始终使用打印string
 printf("%s", c) 
防止embedded%导致问题[内存违规,段错误等]
 如果string中没有格式,则可以使用puts (或fputs ): 
 puts("hello%"); 
如果string中有一个格式:
 printf("%.2f%%", 53.2); 
 正如在评论中指出的那样, puts将\n附加到输出,而fputs不会。 
本身…
 printf("hello%%"); /* like this */ 
使用双%%
 鸡蛋里挑骨头: 
 您并不真正转义指定printf() (和scanf() )函数族格式的string中的% 。 
  printf() (和scanf() )函数族中的%开始一个转换规范。 转换规范的一个规则指出,作为转换说明符的% (紧接在开始转换规范'%' )会导致写入'%'字符而不转换参数。 
 这个string里面真的有2个'%'字符(而不是转义字符: "a\bc"是一个有3个非空字符的string; "a%%b"是一个有4个非空字符的string)。 
喜欢这个:
 printf("hello%%"); //-----------^^ inside printf, use two percent signs together 
C中的反斜杠用于转义string中的字符。 string不会将%识别为特殊字符,因此不需要转义。 printf是另一个问题:使用%%打印一个%。
是的,使用printf(“你好%%”); 它完成了。
 您可以简单地使用%两次,即"%%" 
例:
 printf("You gave me 12.3 %% of profit"); 
您可以使用 %%:
 printf("100%%"); 
结果是:
100%
 您正在使用不正确的格式说明符,您应该使用%%打印% 。 你的代码应该是: 
 printf("hello%%"); 
阅读更多C中使用的所有格式说明符 。
 双“%”也适用于“.Format(…)。例子(使用iDrawApertureMask == 87,fCornerRadMask == 0.05): csCurrentLine.Format("\%ADD%2d%C,%6.4f*\%",iDrawApertureMask,fCornerRadMask) ;给出了csCurrentLine(“%ADD87C,0.0500 *%”)中的string内容的期望值 
用这个:
 #include <stdio.h> printf("hello%s%s"); 
与printf一起使用的格式说明符的完整列表可以在这里find: