Я новичок в C, и мне было интересно, почему эта программа не печатает знак%?Как напечатать знак процента (%) в c
Код:
#include<stdio.h>
main()
{
printf("%");
getch();
}
Я новичок в C, и мне было интересно, почему эта программа не печатает знак%?Как напечатать знак процента (%) в c
Код:
#include<stdio.h>
main()
{
printf("%");
getch();
}
Ваша проблема в том, что вы должны изменить:
printf("%");
в
printf("%%");
Или вы можете использовать код ASCII и написать:
printf("%c", 37);
:)
C не требует ASCII. 'printf ("% c ", 37);' не переносится. –
@ H2CO3 да, но мне нравится ответ, потому что он дал дополнительный трюк! –
@GrijeshChauhan Я не сказал, что мне не понравился ответ, это хороший ответ. Я только отметил, что вышеупомянутый фрагмент не переносится. –
Использование "%%"
. Номер man page описывает это требование:
%
Написано «%». Аргумент не преобразуется. Полная спецификация преобразования - «%%
».
Попробуйте напечатать этот путь
printf("%%");
Этот ответ может быть более полезным. Это не дает никакой ссылки, позволяющей читателям узнать об их ошибках. – Diti
нет никакого объяснения в этой теме почему напечатать знак процента необходимо ввести %%
и, например, не маскирующий с процентом - \%
.
из comp.lang.c FAQ list · Question 12.6:
Причина это сложно напечатать знаки% с Printf, что% является по существу PRINTF Побег символов. Всякий раз, когда printf видит%, он ожидает, что за ним последует персонаж, рассказывающий ему, что делать дальше. Двухсимвольная последовательность %% определена для печати одного%.
Чтобы понять, почему \% не может работать, помните, что обратная косая черта \ является символом escape-кода компилятора и управляет тем, как компилятор интерпретирует символы исходного кода во время компиляции. В этом случае, однако, мы хотим, чтобы контролировал, как printf интерпретирует строку формата во время выполнения. В качестве компилятора escape-последовательность \% не определена, а , вероятно, приводит к одному символу%. Для было бы маловероятно, чтобы и \ и% выполнили печать, даже если printf был , подготовленный для обработки \ специально.
поэтому причина, по которой нужно набирать printf("%%");
для печати одного%, это то, что определено в функции printf. % - это escape-символ printf и \ компилятора.
Благодарим вас за причину. –
Итак, вы прочитали документацию? Что он сказал о знаке процента? –
Этот вопрос можно легко ответить через Google. ОП мог использовать свою логику, т. Е. ('' // ') является символьной константой для'/'и применял это. Разве нет страницы man на 'printf'? – TheBlueCat
Возможно, вы хотели сказать, что '' \\ '' является символьной константой для '\'? Символьная константа для '/' - ''/''. –