Я начинаю курс YouTube по C.
И показывают, что для вывода значений переменных необходимо использовать этот оператор %
.
пример:
int suma, a, b;
a=2;
b=3;
suma=a+b;
printf("El valor de la suma es %i", suma);
В случае integer %i
, float %f
и char%c
Я хотел бы знать, какие другие виды использования имеет этот оператор и какие атрибуты он имеет в зависимости от значения, потому что я видел, что могу разграничить отображаемые десятичные знаки, используя %.1f
или%.2f
В контексте, который вы определяете,
%
это не оператор, а спецификатор формата .В C спецификаторы формата сообщают вариативным функциям , с каким типом аргумента работать.
В простейшем случае:
Указывает компилятору оптимизировать вызов функции
printf
для аргумента типаchar *
.Наиболее распространенными спецификаторами формата могут быть:
*: Эти спецификаторы могут не соответствовать стандарту.
Вне этого контекста это оператор по модулю и используется для получения остатка от деления.
РЕДАКТИРОВАТЬ:
Кроме того, как я упоминал в начале, это спецификатор формата, их также можно использовать для заполнения пробелов нулями или по вашему желанию:
Это приведет к:
Или также:
Последний ограничивает печать первыми тремя знаками после запятой в файле
float
.РЕДАКТИРОВАТЬ 2:
Я чувствовал, что в этом ответе отсутствует некоторая информация, которая теперь присутствует в этом выпуске, а именно, что в спецификаторах формата есть какая-то магия.
Давайте организуем это по типам:
char *
o "C-String" : ее спецификатор%s
, но что произойдет, если мы сделаем:%.2s
?Предположим, у нас есть следующая строка:
"Hola Mundo"
и мы делаем:Ответ: Ограничено печатью только 3-х символов текущего параметра; таким же образом его можно использовать для разделения строк:
Что, если мы их смешаем?
Как видите, любое форматирование строки возможно в C.
Символ
*
внутри спецификатора формата должен включать дополнительный параметр в вызове функции, чтобы указать его значение, как в примерах, упомянутых выше.Ниже приведена таблица с возможными типами формата, которые могут быть заданы параметру, см. последнюю ссылку (Википедия):
Формат применяется практически одинаковый для всех типов, но все равно нужно быть осторожным.
Некоторые ссылки:
printf
(Справочник по C++)printf(const char fmt, ...)
printf
Он также используется для оператора модуля, который является не чем иным, как остатком от деления. Например, вот небольшой фрагмент кода C, который сообщает, является ли число четным или нечетным:
Это должно отображать «Число четное», потому что, если вы разделите четное число на 2, остаток всегда будет 0. Надеюсь, это помогло вам.