- •Функции стандартного ввода/вывода
- •Примечание
- •Примечание
- •9.2.2 Ввод/вывод с использованием разных классов
- •Пространства имен
- •Работа с классом fstream
- •Is_open() — если файл открыт, то функция возвращает true, иначе - false;
- •Работа с классом ofstream
- •Работа с классом ifstream
- •Работа с бинарным файлом
- •Общие положения
- •Стандартный ввод cin
Функции стандартного ввода/вывода
К этим функциям относятся следующие:
Функция 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 результат будет как для символов е, е, но с тем отличием, что хвостовые нули не будут удаляться.