2010-06-15 63 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); 

應輸出%每一側上。