Printf C: описание, формат, примеры
Опубликованно 26.12.2017 10:31
Нормальной функции консольного вывода в языке C printf. Описание его содержится в заголовочный файл stdio.h. С помощью этой функции можно получить информацию, или сообщения в консоли. Язык C не является чувствительным к регистру. Например, две функции printf и scanf отличаются от аналогичных Printf и Scanf. Все символы функций printf и scanf, также должны быть записаны в нижнем регистре. Один из самых простых примеров C printf, создает на экране знакомое приветствие hello world, это:
Определение функций группы printf в файле stdio.ч"
Файл stdio.ч" относится к стандартной библиотеке ввода/вывода в языке C. Описание printf-подобные функции описаны в нем следующим образом:
Перечисленные функции производят загрузку данных из некоторых мест, преобразуется в строку символов, которые отправляются на указанные потоки вывода.Семейство функций printf
Функции группы printf в C, которые служат для обработки и формата вывода данных в стандартный вывод. И в функции printf и vprintf производят запись в стандартный поток вывода stdout, функции fprintf и vfprintf отправляют значений результатов, аргументов, в какой установлен выходной поток, и snprintf, sprintf, vsnprintf и vsprintf записи данных в строку символов. Все функции работают с помощью строки форматирования, указав необходимые преобразования аргументов для вывода.
Функция fprintf записывает результат в выходной поток stream. В буфер обмена, который представляет собой строку символов, отображает результат функции sprintf. Поведение функции не определено, нарушения вывода строки больше, чем размер массива буфера.
Функция snprintf, как и выше, записывает данные в буфер строки. Строка заканчивается нулевым символом, если только bufsz (размер буфера) не равен нулю. В противном случае, если значение bufsz равен нулю, в буфере ничего не появляется, и буфер может быть нулевым указателем, но возвращаемое значение (число байтов, которые могут записывать) все равно вычисляется.
Функция printf_s, в целом, действует таким же образом, что и printf, за исключением одного момента. Главное отличие в описании printf_s в C printf является следующее: функция printf_s выполняет проверку строкой форматирования, на наличие допустимых символов, в отличие от printf, что он только проверяет, если строка форматирования в поисках указателя NULL.
Подробнее рассмотрим функцию printf.Общее описание
В языке C, символов печати через стандартный вывод осуществляется через вызов функции printf. Команда printf в C форматирование результирующего набора, которые отправляются на стандартный вывод stdout. Значения, передаваемые в качестве аргументов функции, печатаются в консоли соответствии со строкой форматирования, которые, в свою очередь, состоит из двух типов элементов. Первая форма-это символ на экране, и элементы, которые определяют формат данных и несут ответственность за представление доводов в выходной, относятся ко второму виду.
Когда выходные переменные с printf в C специальные комбинации символов в строке аргументов заменяют, преобразованных в соответствии с этими символами данных, и каждый тип данных имеет свои собственные характеристики форматирования вывода.Тип функции, и возвращаемое значение
Функция printf, типа int, и возвращает значение интеграл, соответствующий номер, напечатанный на экране символов. Например, можно назначить:
int k = printf("Привет, %c %d %s", "a", 11, "все!"),
и тогда значение переменной k распознается легко, если произошла ошибка на выходе. В случае возврата отрицательное значение (если функция вернула "-1"), можно заключить, что произошла ошибка при запуске.Синтаксис и зависимости
Чтобы использовать функцию printf, необходимо подключить заголовочный файл "stdio.h" следующим образом:
#include <stdio.h>
Шаблон функции-это:
int printf(const char *формат, ...)
Под многоточием подразумевается список аргументов, которые будут отображаться. Функция printf можно использовать с переменным числом аргументов, но первый из них всегда ограничивается с обеих сторон в двойные кавычки, и каждый должен отделить от предыдущего точкой с запятой. То, что написано в кавычках, что не является спецификацией формата, печать без изменений, в противном случае, если бы они встретились описатель, копирование тип его значения.
Формы работы спецификации формата:
%[флаги][ширина][.положение][длина]тип
Формат printf в C значения выходного
Чтение строки формата, который указан в скобках после имени вызываемой функции, происходит в одном направлении: слева направо, и первый аргумент указывает после этой линии, будет отображаться только в случае, если встретилась первая спецификация. Пока не закончится строка формата, спецификации будут начать преобразование и печать последующих аргументов. На панели форматирования пробела рассматривается как обычный символ и передается на выход, в тех случаях, когда не используется в выражении спецификации формата.
Символ "%" указывает на начало спецификация формата вывода, после приходит код формата. Все поля спецификации являются индивидуальные условия, которые определяют формат чисел или символов.
Форматированный вывод printf в C имеет свои особенности. В случае если этих аргументов больше, чем спецификаций формата, не учитываются и не отображаются. В противном случае, если в спецификации формата больше, чем значение в список подлежащих печати аргументов, результат функции не определен.
Для явного указания, что за счет аргумент нужно использовать, можно использовать "%m$" вместо "%" и "*м$" вместо "*", являясь m целое число, десятичное значение, которое указывает позицию аргумента (индексация начинается с единицы).ПараметрыstreamВыходной поток для записи в файлбуферУказатель на строку символов, а затем писать на немbufszОпределяет число символов, допустимых для записи: максимальное значение-bufsz-1, а другой-ноль ограничительformatУказатель на строку многобайтовых с ограничитель, который определяет, как интерпретировать вывод аргументыПоказатели, которые используются в строке форматаФлагОписание-Выравнивание результата по левому краю в поле вывода+Если выход-это числовое значение, которое имеет знак, силы печать "+" перед положительным значением (по умолчанию отображается только "-" перед отрицательным значением)0Для целых чисел и чисел с плавающей запятой нули используются вместо пробелов, чтобы заполнить слева от цифр в случае, если указать ширину поля, превышает длину номера. Для целых чисел флаг игнорируется, если явно указана точность информации. Для других преобразований с использованием этого индикатора, поведение функции не определено. Индикатор "0" не учитывается, если присутствует флаг "-"spaceЕсли результат вывода выражения, имеет характер не начинается с символа знака или вакуум, пространство добавляется к результату. Флаг "space" игнорируется при наличии флага "+"#Выполняется альтернативный способ конвертироватьEscape-последовательностиПоследовательностьРезультатвЗвуковой сигнал Перевод на новую строку Возврат курсора в начало строки ТабуляцииvВертикальная табуляция"Вывод его в двойные кавычки\Выход косойРазличные спецификаторы форматаОписатель форматаИспользование и описание для printf CТип аргумента%Записи, буквально,"%"cВыход один символ. Происходит преобразование аргумент типа unsigned char. Если используется параметр "l", аргумент преобразуется в строку символовunsigned charsНапечатать строку символов. Аргумент должен быть указателем на первый элемент массива символов charchar *diВыход десятичное представление целого числа со знакомintилиВыход восьмеричного представления, как важно целочисленного значенияunsigned intxXВывод шестнадцатеричного представления, не важно, целых чисел. Символы "a", "b", "c", "d", "e", "f" используются для преобразования "x". И для преобразования "X" - "A", "B", "C", "D", "E", "F"unsigned intилиВывод преобразования из десятичной не важно, целых чисел. Если преобразованное значение и точность равны 0, символы не отображаютсяunsigned intfFВывод десятичного представления числа с плавающей точкой, со знакомdoubleиИВыход десятичный экспоненциальное представление числа с плавающей запятой, органа и стало так, что перед запятой остается одна цифра, а число цифр после запятой, что соответствует точности представления (по умолчанию точность равна 6, и, если указано значение 0, то символ запятой не появляется вообще). Буква "е" появляется в верхнем или нижнем регистре в зависимости от преобразованияdoubleвВВывод шестнадцатеричного представления числа с плавающей запятойdoublegGВывод десятичного представления числа с плавающей запятой или число десятичных знаков, научной нотации, в зависимости от значения и точностиdoublenВозвращение количества элементов вывода функции printf. Результат записывается в переменную, на которую указывает аргумент. Спецификация не может содержать флаги, ширины поля или точностиint *pВыход указателяvoid *
Модификатор ширины поля
В строке формата printf C может быть записано целое число после знака " % " и до того, как команды форматирования. Это модификатор ширины поля и влияет на представление данных, отображаемых. Минимальная ширина поля, предназначенный для значения определяется количество и наличие этого параметра в случае, если аргумент является меньше, чем назначенный поля, вызывает добавление к результату пробелы или нули. Заполнитель по умолчанию, это символ пространства, тем не менее, можно установить с нуля, поставив перед спецификация ширина. Параметр задает минимальную ширину, и, все больше, чем этот минимум, то значение будет Напечатано без помех. Количество, например, состоит из менее чем из восьми символов печати и спецификации, "%08d", будет завершено до необходимых восьми цифр с нулями.
Эти параметры также можно настроить параметры точности или выравнивание.Модификатор точности
Модификатор точности применяется для определения количества печати десятичных разрядов в представлении чисел. Чтобы добавить модификатор точности, было необходимо поставить точку после спецификации ширины поля и указать значение точности после нее. Параметр точности определяет для "e", "f", "a", "E", "A" и "F" форматов. Для целых чисел параметр задает количество отображаемых цифр, добавив нули скачать, если это необходимо, и во время выхода из рациональных чисел определяет количество цифр после запятой. Что касается цепи переменных: следующее после точки число в параметр точности служит, что определяет максимальную длину поля вывода. Например, через спецификацию формата "%4.8 s", появится строка, длина которой находится в диапазоне от четырех до восьми символов, в случае превышения концы символы будут.Другие параметры форматирования
Выравнивание по умолчанию выравнивание по правому краю, однако, это можно изменить, поставив знак "-" после "%". Эта спецификация формата, задает выравнивание по левому краю.
Кроме того, функция printf является в состоянии провести различие между краткосрочной и долгосрочной типов результатов целочисленных значений. Допустимые модификаторы: "о", "d", "u", "i", "x" и "X". Длинный тип значения задается параметром "l", и режет модификатор "h". Например, если выход длинного целого числа, и значения типа unsigned short int спецификации формата отображаются как "%ld" и "%Ху", соответственно.ДлинаОписаниечДля типов short или unsigned shortlДля типов long или unsigned longLДля типа long doubleПримеры
1. Описание printf C и результаты вызова каждой функции:
2. Вывод на экран диалоговое сообщение:
printf("сообщение");
3. Код:
Выражения, определенные в кавычки, перед тем как спецификации формата, печатаются на экране, а также следующие за формат строка аргументов. Результат выполнения функции printf в C, описание выхода:
Этот пример иллюстрирует вывод на экран, используя различные форматы, строки, числа, переменные, символы, а также чисел с плавающей запятой.Стандартные функции ввода scanf, и примеры их использования
Функция scanf используется для чтения вводимых с клавиатуры данных. Описание printf и scanf в C содержится в заголовочном файле "stdio.h".
scanf("format specifiers",&value1 и value2, ...);
Простой пример работы с помощью функции scanf:
#include <stdio.h>
int main(){
int a;
float b;
scanf("%d%f",&a,&b);
}
Категория: Мобильная техника