2010-06-15 64 views

回答

21

没有,%%输出%,所以正确的语法是:

printf("%%%s%%",string); 
+5

+1:一言一行我在答案框中有。 :) – sdolan 2010-06-15 06:35:17

8

使用%%%s%%

+0

解释:%%转义为%字符。 %s是一个控制代码。 – 2010-06-15 06:32:04

0

可以打印这样的字符串: 的printf( “%s”,SomeString);

它应该工作!

+0

重点是在格式化字符串的左侧和右侧输出%符号。 – bezmax 2010-06-15 06:32:20

+0

噢好吧,他以为他在帖子中犯了一个错误! – Daniel 2010-06-15 06:34:53

3

该解决方案让您不知道应如何打印'%'或'\'等特殊的printf字符。

#include <stdio.h> 

int main(void) 
{ 
    const char str[]="MyString"; 
    printf("%c%s%c",'%',str,'%'); 
    return 0; 
} 
+1

这是不是有点过分了? 'printf'为'%'有一个适当的转义字符,所以为什么不使用它?如果问题在于记住它......那么这只是Google的搜索而已。 – nico 2010-06-15 06:49:00

+0

不要误解我的意思,如果我知道%%或\\序列,我不会使用它,但在我看来,它仍然很好。 – INS 2010-06-15 06:57:00

+3

是的,它很好意识到你可以做到这一点。我认为这会帮助人们理解printf在做什么。但不要在生产中这样做。 :) – BobbyShaftoe 2010-06-15 23:10:10

5
printf("%%%s%%", string); 

应输出%每一侧上。