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


Опубликованно 02.12.2017 01:12

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

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

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

Файл "stdio.h" относится к стандартной библиотеке ввода/вывода в C. Описание printf и подобные характеристики приведен в нем следующим образом:

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

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

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

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

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

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

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

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

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

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

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

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

#include <stdio.h>

Модель, кажется, работает:

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

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

Вид деятельности спецификации формата:

%[флаги][ширина][.местоположение], [длина], тип

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

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

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

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

Для того, чтобы явно указать, что по поручению теме хотите использовать, вы можете использовать "%m$" вместо "%" и "*м$" вместо "*", и m, int десятичное значение, что указывает на правильное местоположение статьи (индексация начинается с единицы).Параметрытрансляцию матчаВыходной поток для записи в файлбуферУказатель на строку знаков для последующей регистрации в немbufszЗадает число символов, допустимых для записи: максимальное значение - bufsz-1, и еще ноль ограничительformatУказатель на строку многобайтовых с нуля ограничитель, определяет, как интерпретировать выходные данные темыФлаги, которые используются в строке форматаФлагОписание-Выравнивание результата по левому краю в поле вывода+Когда выдается числовое значение со знаком, силой напечатано "+" перед положительным количеством (по умолчанию, отображается только "-" перед отрицательным значением)0Для целых чисел и чисел с плавающей запятой, и нулей используются вместо пробелов для заполнения цифр слева в случае, если вы установите ширину поля, превышает длину числа. Для целых чисел флаг игнорируется, если явно указано точностью. Для других преобразований, используя этот флаг, то поведение не определено. Флаг "0" не учитывается, если присутствует флаг "-"spaceЕсли результат вывода выражений, со знаком, не начинается с символа этого знака или вакуум, пространство добавляется к результату. Флаг "space" игнорируется, если установлен флаг "+"#Выполняется в альтернативной форме преобразованияEscape-последовательностиПоследовательностьВ прямом эфиревЗвуковой сигнал Перевод на новую строку Возврат курсора в начало строки ТабуляцииvВертикальная табуляция"Заключение в двойные кавычкиВывод панелиРазличные спецификаторы форматаОписатель форматаИспользование и описание для printf CТип аргумента%Регистрация литерал "%"cВывод одного символа. Происходит преобразование аргумент типа unsigned char. Когда вы используете модификатор "l" аргумент преобразуется в строку символовunsigned charsПечать строку символов. Аргументом должен быть указатель на начальный элемент массива символов charchar *dвсеЗаключение десятичного представления значения целого числа со знакомintилиЗаключение в восемь раз представление беззнаковых целыхunsigned intxXЗаключение шестнадцатеричное без знака, целых чисел. Символы "a", "b", "c", "d", "e", "f" вопрос преобразования "х". И для преобразования "Х" - "A", "B", "C", "D", "E", "F"unsigned intuЗаключение преобразования десятичного без знака, целых чисел. Если преобразованное значение и точность вместе равны 0, символы не отображаютсяunsigned intfFЗаключение десятичного представления числа с плавающей запятой со знакомdoubleиИЗаключение десятичного в экспоненциальном представлении числа с плавающей запятой, округляется и преобразуется так, что перед запятой остается одна цифра и число цифр после запятой соответствует точности представления (по умолчанию точность равна 6, а если указать 0, символ точки с запятой не отображается вообще). Символ "и", отображается в верхнем или нижнем регистре в зависимости от преобразованияdoubleвВЗаключение шестнадцатеричное представление числа с плавающей запятойdoubleгГЗаключение десятичного представления числа с плавающей запятой, десятичных чисел в научной нотации, в зависимости от значения и точности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" и "%ху", соответственно.ДлинаОписаниеhДля типов 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 specifier",&значение1,&значение2, ...);

Простой пример работы с функцией scanf:

#include <stdio.h>

int main(){

int a;

float b;

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

}



Категория: Техника