Как вы отображаете "% 5d" в C? - PullRequest
3 голосов
/ 23 января 2011

Как вы отображаете строку "% 5d" в C? Я попытался поместить обратную косую черту перед процентом, но он не будет печататься (и дал предупреждения). Я пробовал гуглить, но безрезультатно. Я думаю, что это слишком широко для меня, чтобы найти конкретный ответ.

#include <stdio.h>

int main(void)
{
    int test = 40;
    printf("\%5.1d %5.1d", test); //this is the one
    printf("%5.1d", test);
    return 0;
}

Любая помощь?

Ответы [ 4 ]

10 голосов
/ 23 января 2011

Для печати % попробуйте printf("%%");

Это работает

printf("%%5.1d %5.1d", test);
2 голосов
/ 23 января 2011

Или вы могли бы сделать printf("%s", "%5d") :) Я понимаю, что это окольный путь, и те, что описаны в других ответах, лучше, но упоминание об этом тоже возможно.

2 голосов
/ 23 января 2011

В качестве альтернативы двум другим (по крайней мере) совершенно правильным ответам, вы также можете использовать fputs(), например:

#include <stdio.h>

int main(void)
{
    int test = 40;
    fputs("%5d ", stdout);
    printf("%5.1d\n", test);
    return 0;
}

Обратите внимание, что я добавил новую строку в вывод; это важно, поскольку вывод не сбрасывается на терминал до тех пор, пока вы не выведете новую строку. Обратите внимание, что я использовал fputs(), а не puts(), потому что puts() испускает символ новой строки, который вы не хотите выводить.

Однако, зная общее решение использования двойного % для реального процента в семействах функций printf() и scanf(), вы окажетесь в хорошей позиции на будущее.

2 голосов
/ 23 января 2011

Использовать двойной% - printf("%%5d").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...