Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Функции стандартного ввода.docx
Скачиваний:
1
Добавлен:
17.11.2019
Размер:
538.07 Кб
Скачать

Функции стандартного ввода/вывода

К этим функциям относятся следующие:

  • Функция getchar().

Формат:

getchar();.

Вводит с клавиатуры один символ и выдает его. Обращаться к этой функции можно так:

char с; (или int с;) c=getchar();

  • Функция putchar().

Формат:

putchar(char с);

Выводит значение переменной с (один символ) на стандартное выводное устройство. Обращение:

putchar(с);

  • Функция printf().

Формат:

printf(Control,arg1,arg2,...,argn);

Функция форматного вывода. Выводит на экран содержимое arg1, arg2, ..., argn и возвращает количество выводимых байтов.

Здесь Control— управляющая символьная строка, в которой находятся форматы вывода на экран для соответствующих аргументов arg1,arg2, .. .,argn, т. е. первый формат— для вывода arg1, второй — для arg2 и т. д.

Все символы, находящиеся между форматами, выводятся один к одному (т. е. не форматируются), что дает возможность вывода дополнительного текста для улучшения читаемости результата вывода.

Форматы вывода задаются так: любой формат начинается с символа % и заканчивается одним из символов форматирования:

  • d — аргумент преобразуется к десятичному виду (с учетом знака);

  • i — аргумент преобразуется к десятичному виду (с учетом знака);

  • о — аргумент преобразуется к восьмеричному беззнаковому виду;

  • х — аргумент преобразуется в беззнаковую шестнадцатеричную форму (с символами A, B, C, D, E, F);

  • х — аргумент преобразуется в беззнаковую шестнадцатеричную форму (с символами A, B, C, D, E, F);

  • U — аргумент преобразуется в беззнаковую десятичную форму;

  • с — аргумент рассматривается как отдельный символ;

  • s — аргумент рассматривается как строка символов; символы строки печатаются до тех пор, пока не будет достигнут нулевой символ ил не будет напечатано количество символов, указанное в спецификаци точности (о спецификаторе точности скажем далее);

  • е — аргумент рассматривается как переменная типа float или double и преобразуется в десятичную форму в экспонентном виде [-]m.nnnnnn е[+-]хх, где длина строки из n определяется указанно точностью. По умолчанию точность равна 6;

  • E — то же, что и е. но с E для экспоненты;

  • f — аргумент рассматривается как переменная типа float или double и преобразуется в десятичную форму в виде [-]mmm.nnnnnJ где длина строки из n определяется указанной точностью. По умолчанию точность равна 6;

  • g— используется либо формат %е, либо %f: выберется тот формат, который даст изображение числа меньшим количеством знаков с учeтом заданной точности. Незначащие нули не печатаются;

  • G — то же, что и g, но с E для экспоненты, если используется формат е;

  • n — указатель на целое со знаком;

  • р — входной аргумент выводится как указатель. Формат зависит от модели используемой памяти. Он может быть вида XXXX:YYYY или YYYY (только смещение).

Между границами формата вывода находятся:

[флажки] [ширина] [.точность] [F|N|h|l|L].

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

  • флажки определяют выравнивание выводимого значения (по правому или по левому краю поля вывода), знаки числа, десятичные точки, конечные нули, восьмеричные и шестнадцатеричные префиксы. Флажки имеют следующий смысл:

    • выравнивание результата по левому краю поля вывода (число будет прижато к левой границе поля вывода) и заполнение поля вывода справа пробелами. Если этот флаг не задан, то результат выравнивается по правому краю поля вывода, а оставшееся слева пространство заполняется пробелами или нулями;

    • + — преобразование результата к виду со знаком: результат всегда начинается со знака "+" или "-";

    • пробел— если значение неотрицательное, то вместо плюса выводится пробел. Для отрицательных чисел выводится минус;

    • # — указывает, что аргумент должен быть преобразован с использованием альтернативной формы. Это означает, что если флажок # используется вместе с символом преобразования (форматирования), то при преобразовании аргумента для символов с, s, d, u, i, о, х, X символ # не влияет на результат. Для символов е, е, f результат, всегда будет содержать десятичную точку, даже если за точкой не следует никаких цифр (обычно десятичная точка появляется, если за ней следует цифра). Для символов g, G результат будет как для символов е, е, но с тем отличием, что хвостовые нули не будут удаляться.