Printf C: Описание, Форматирование, Примеры


Опубликованно 12.11.2017 17:39

Printf C: Описание, Форматирование, Примеры

Стандартные функции консольный вывод в C – printf. Описание его содержится в заголовочном файле stdio.сек. С помощью этой функции можно указать, будут ли данные или пользовательские сообщения в консоль. Язык C учетом регистра. Например, две функции printf и scanf отличаются от аналогичных Printf и Scanf. Все знаки в функциях printf и scanf должны быть записаны в нижнем регистре. Одним из самых простых примеров для C printf, которая печатает на экране знакомые приветствие "hello world", является:

Определение группы функций printf в файле "stdio.ч"

Файл "stdio.h" относится к стандартной библиотеке ввода-вывода с. описание printf в языке и аналогичными функциями см. в нем следующим образом:

Перечисленные возможности производить загрузку данных из определенных точках, в результате они преобразуются в знаки, отправили в указанных расходах.Семейство функций printf

Группы функции printf в языке программирования C служат для изменения и редактирования форматированного вывода данных в стандартный поток. Причем функции printf и vprintf произвести запись в стандартный поток STDERR функции fprintf и vfprintf отправить значения производных аргументов к определенному указанного выходного потока, snprintf, sprintf, vsnprintf и vsprintf записать данные в строку. Все перечисленные функции работы со строкой формата, показывает необходимые преобразования аргументов для вывода.

Функция fprintf записывает результат в выходной поток stream. В буфер строку, показывает результат функции sprintf. Поведение функции не определено, если их заключительные строки больше, чем размер буфера.

Функция snprintf так же, как и предыдущее, пишет данные в строку-буфер. Результирующая строка нулевой символ не заканчивается, если только bufsz (размер буфера) равна нулю. В противном случае, если значение bufsz равно null, то ничего не выводится в буфер, и буфер может рассчитываться также является нулевым указателем, но возвращаемое значение (число байтов, которые будут записаны) все равно.

Printf_s функция, как правило, действует так же, как и printf, за исключением одного момента. Основное различие в описании printf_s printf в C и заключается в следующем: printf_s выполняет функцию проверки строки форматирования на наличие допустимых символов, в отличие от printf, которая только рассматривает символьную строку формата относительно нулевого указателя.

Подробнее рассмотрим функции printf.Общее Описание

C печать знаков через стандартный вывод осуществляется через вызов функции printf. Команда printf в C форматирует набор выводимых данных, и они идут в stdout стандартный вывод. Значений переданных аргументов и параметров, выводить в консоль соответствии с указанной строкой форматирования, которые, в свою очередь, включает в себя два типа элементов. Первый вариант-это символ, появляется на экране, и элементы, определяющие особенности формата данных и относящихся по способу представления аргументов при выводе, для второго сорта.

При выводе переменных с printf в C особую комбинацию символов в строке аргументов в преобразованных в соответствии с этими символами данных, причем для каждого типа данных существует свой формат указанием выходных данных.Тип функции и возвращаемое значение

Функция printf, которая возвращает int целое число на количество печатных знаков на экране. Например, можно назначить:

int k = printf("Hello %c %d %s", 'a', 11, "все!"),

а затем-по значению переменной k можно быстро определить, возникла ли ошибка при выводе. В случае возврата отрицательного значения (если функция возвращает "-1"), можно сделать вывод, что произошла ошибка при запуске.Синтаксис и зависимостей

Для того, чтобы функция printf, которую можно подключить заголовочный файл "stdio хотите.ч" следующим образом:

#include <stdio.h>

Шаблон функции выглядит так:

int printf(const char *Format, ...)

Под многоточием список аргументов, вывод подразумевается. Функция printf может с разным количеством аргументов, но первая всегда ограничена с обеих сторон двойными кавычками, и каждый последующий должен отделять отдельно от предыдущего запятой. Что находится в двойных кавычках, а не как спецификация формата, Напечатано без изменений, в противном случае, если спецификатор, встретил ее копирует значение типа.

Форма Заказа-Спецификации Формата:

%[Флаги][Ширина][.Положение][Длина]Тип

Форматирование с printf в C исходным значениям

Формат знак следовать дальше, в появившемся скобках после имени вызываемой функции осуществляется только в одном направлении: слева направо, и первый аргумент, который будет после этой строки, только в том случае, когда первая спецификация встретил. Пока не конец строки формата, конвертировать будут инициировать в нем спецификации и печать последующих аргументов. Format string обрабатывается пробел, как и обычные символы, будут аннулированы в случаях, если он не используется в выражении обозначении.

Значок "%" знаменует начало спецификации формата вывода, за ним код формата идет. Все поля в спецификации являются личности, созданию условий для форматирования числа или символы.

Форматированного вывода printf в C имеет свои особенности. В случае, если число аргументов больше числа формат спецификации, они игнорируются и не отображаются. Иначе, если спецификации формата не определяется больше, чем значения в нижележащих давлением аргументов, результатом вызова функции.

Для явного указания сжимать на счету аргумент, возможно, с "%m$" вместо "%" и "*m$" вместо "*", где m целое десятичное число, местоположение требуемого аргумента (индексация начинается с единицы).ВариантыпотокВыходной поток для записи в файлbufferУказатель на строку для последующего включения в ееbufszВозвращает количество символов, допустимое для записи: максимальное значение - bufsz-1, и еще ноль-ограничительформатУказатель на многобайтовую строку с нулевой ограничитель, который определяет, как интерпретировать производных аргументовФлаги, в строке форматаФлагОписание-Выравнивание результата по левому краю в поле вывода+При выводе числовых значений, символов, принудительно Напечатано "+" перед положительным значением (по умолчанию только " - " перед отрицательным значением)0Для целых чисел и с плавающей точкой чисел начальные нули вместо пробелов для заполнения категорий в левом случае при одинаковой ширине поля, больше, чем длина числа. Для целых чисел флаг игнорируется, если точность явно указана. Для других транс ионы формат не определен этот флаг поведение функции. Флаг "0" не учитывается, если есть флаг "-"spaceЕсли выдача термины, символы не начинается с этого знака или пробела, то пробел будет будет результат. Флаг "space" игнорируется, если установлен флаг присутствует "+"#Будет альтернативный вид преобразованияEscape-ПоследовательностиПорядокРезультатaЗвуковой сигнал Перевод на новую строку Возврат курсора в начало строки ТабуляторvВертикальная Табуляция"Заключение двойные кавычкиВывод СлэшРазличные Формат ИдентификатораСпецификатор форматаИспользование и описание для printf CТип аргумента%Запись Строковый Литерал "%"cВывод отдельного символа. Происходит преобразование аргумента в тип unsigned char. Если модификатор "l" - аргумент в строку символов преобразуетunsigned charsПечать строк. Аргументом должен быть указатель на начальный элемент массива символов charchar *diЗаключение десятичного целого числа со знакомintoВывод восемь представлений без знакового целочисленного значенияunsigned intxXВывод шестнадцатеричное представление без знакового целочисленного значения. Символы "a", "b", "c", "d", "e", "f" применяются для преобразования "x". И для преобразования "X" - "A", "B", "C", "D", "E", "F"unsigned intuЗаключение десятичного преобразования без знакового целочисленного значения. Если преобразованное значение и точность вместе равны 0, не отображаются значкиunsigned intfFЗаключение десятичного числа с плавающей запятой, символыdoubleeEВывод int экспоненциальное представление чисел с плавающей точкой, округленное, а не преобразованный так, что перед запятой только одну цифру, и количество цифр после запятой точности соответствует изображения (по умолчанию точность равна 6, если указано 0, то появляется запятая в целом). Значок "е" появляется в верхнем или нижнем регистре в зависимости от преобразованияdoubleaAВывод шестнадцатеричного представления числа с плавающей запятойdoubleгГЗаключение десятичного представления с плавающей запятой или десятичной экспоненциальное представление в зависимости от значений и точностиdoublenВозвращает количество элементов, которые вычисляются с помощью функции printf. Результат в переменную, на которую указывает аргумент. Спецификация может содержать никаких флагов, ширина поля или точностьint *pЗаключение Указательvoid *

Модификатор ширины поля

Format string C находится в printf, может отформатировать это целое число после знака процента и перед командой. Он представляет собой модификатор ширины поля и влияет на внешний вид отображаемых данных. Наименьшая ширина поля для значений, определяет этот показатель, и наличие такого модификатора в случае, когда аргумент оказывается менее преданные поля, вызывает разработано прибавление к результату пробелы или нули. Заполнитель по умолчанию пробел служит, однако вы можете установить ноль, поставив его перед спецификацию ширины. Модификатор дает по крайней мере в ширину, и каждая будет больше, чем этот минимум стоит Напечатано без помех. Число, например, состоящий из не менее восьми символов и печатать изображения со спецификацией "%08d", будет дополнен нулями до необходимых восьми цифр.

Такие модификаторы могут также параметры точности и соосности.Модификатор Точности

Модификатор точности применяется для определения количества печатаемых знаков после запятой в представлении чисел. Для добавления точности модификатор требуется одна точка в спецификации ширины поля и введите требуемое значение точности по ней. Модификатор точности определяет для "e", "f", "a", "E", "A" и "F" форматы. Для целых чисел модификатор количество отображаемых цифр, добавляя нули ставит в левое место, если это необходимо, и при выводе рациональных чисел необходимое число десятичных знаков определяет. По отношению к знакам следовать следующим пунктам переменные: по количеству модификатор точности служит фактором, определяющим максимальную длину полей при выводе. Например, при обозначении "%s 4.8" будет выведена строка, чья длина находится в диапазоне от четырех до восьми знаков, в случае превышения экстремальные персонажи будут опущены.Другие Модификаторы Формата

Ориентация по умолчанию по правому краю, это можно изменить, поставив знак "-" в "%". Такая спецификация для формата слева установлена заподлицо.

Кроме того, функция printf является способны различать, короткие и длинные производных типов целочисленных значений. Допустимые идентификаторы: "O", "d", "u", "i", "x" и "X". Для Long-значений будет от модификатора "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.ч".

scanf("format specifiers",&значение1,&значение2, ...);

Простой пример с помощью функции scanf:

#include <stdio.h>

int main(){

int a;

float b;

scanf("%d%f",&a,&b);

}



Категория: Строительство