Подтвердить что ты не робот

Как напечатать знак процента (%) в c

Я новичок в C, и мне было интересно, почему эта программа не печатает знак%?

Код:

#include<stdio.h>

main()
{
     printf("%");
     getch();
}
4b9b3361

Ответ 1

Ваша проблема в том, что вам нужно изменить:

printf("%"); 

to

printf("%%");

Или вы можете использовать код ASCII и написать:

printf("%c", 37);

:)

Ответ 2

В этом разделе нет объяснений, почему для печати знака процента нужно набрать %%, а не, например, escape-символ с процентом - \%.

из comp.lang.c Список вопросов · Вопрос 12.6:

Причина, по которой сложно печатать знаки% с printf, состоит в том, что% is в высшей степени принтf пробег знак. Всякий раз, когда printf видит%, это ожидает, что за ним последует персонаж, рассказывающий, что делать дальше. Двухсимвольная последовательность %% определена для печати одного%.

Чтобы понять, почему\%не может работать, помните, что обратная косая черта\является escape-символ компилятора и управляет тем, как интерпретирует компилятор символы исходного кода во время компиляции. В этом случае, однако, мы хотим чтобы контролировать, как printf интерпретирует строку формата во время выполнения. До как компилятор, escape-последовательность\%равна undefined, и вероятно, приводит к одному символу%. Было бы маловероятно, чтобы и\и%, чтобы выполнить печать, даже если printf были подготовлен к обработке\специально.

поэтому причина, по которой нужно печатать printf("%%"); для печати одного%, - это то, что определено в функции printf. % - это escape-символ printf и\компилятора.

Ответ 3

Используйте "%%". Страница описывает это требование:

% А '%' написано. Аргумент не преобразуется. Полная спецификация преобразования - "%%".

Ответ 4

Попробуйте распечатать этот путь

printf("%%");