2010-06-15 2 views

ответ

21

Нет, %% выходы%, поэтому правильный синтаксис:

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

+1: Слово в слово, что у меня было в окне ответа. :) – sdolan

8

No.

Использование %%%s%%

+0

информация: %% escapes to a символ. % s - управляющий код. –

0

Вы можете напечатать строку, как это: Е («% s», SomeString);

Должно работать!

+0

Суть в том, чтобы вывести знак% слева и справа от форматированной строки. – bezmax

+0

Ой, подумал он ошибся в сообщении! – Daniel

3

Это решение освобождает вас от понимания того, как должны печататься специальные символы printf, такие как «%» или «\».

#include <stdio.h> 

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

Разве это не слишком оскорбительно? 'printf' имеет соответствующий escape-символ для'% ', так почему бы не использовать его? Если проблема запоминает это ... ну, это просто поиск Google. – nico

+0

Не поймите меня неправильно, я бы не использовал это, если бы знал последовательности %% или \\, но по-прежнему хорошо знать, на мой взгляд. – INS

+3

Да, хорошо понять, что вы можете это сделать. Я думаю, что это поможет людям понять, что делает printf. Но не делайте этого в производстве. :) – BobbyShaftoe

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

должен выводить% с каждой стороны.

Смежные вопросы