使用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);

每当你要打印一个字符串,永远,永远,永远使用它打印

printf("%s", c)

,以防止嵌入的%从引起问题[存储器违反,段错误,等]

如果没有格式字符串中,可以使用 puts (或 fputs ):

puts("hello%");

如果在字符串中的格式:

printf("%.2f%%", 53.2);

如在评论中所指出,puts追加\n到输出和fputs没有。

使用本身...

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

挑剔:结果 你真的不逃避,用于指定%(和printf())系列函数的格式字符串中的scanf()

%,在printf()(和scanf())系列函数,启动转换规范。一个用于转换规格的规则指出,一个%作为转换指定(立即启动该转换规格的%以下)使'%'字符不带参数的转换被写入。

的字符串的确实具有内部2个'%'字符(相对于逸出字符:"a\bc"是与3个非空字符的字符串; "a%%b"是具有4个非空字符的字符串)。

使用双%%

像这样:

printf("hello%%");
//-----------^^ inside printf, use two percent signs together

用C反斜杠用于逃避串字符。字符串不承认%为一个特殊字符,因此没有逃脱是必要的。 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 *%”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top