
- •Требования к оформлению графика
- •Требования к тексту программы
- •Содержание отчета
- •Варианты заданий
- •Алфавит
- •Объявление переменных. Типы данных
- •Простые типы данных
- •Структурированные типы данных
- •Константы
- •Операции Присваивание.
- •Арифметические:
- •Логические (результат – логическое значение).
- •Функции
- •Директивы препроцессора
- •Указатели
- •Приведение типов
- •Типизированные и нетипизированные указатели
- •Массивы
- •Функции работы с памятью
- •Строки.
- •Указатель на функции
- •Работа с файлами.
- •Форматированный ввод-вывод
Форматированный ввод-вывод
Для форматированного вывода в поток предназначена функция
fprintf(FILE* stream, const char* formatted_string, arguments, …)
Для подстановки значений переменных в строку вывода используют символы подстановки (спецификаторы формата), начинающиеся с символа «%»:
%[флаги][размер][.точность][модификатор_длины]тип_данного1
Флаги:
«-» – выравнивание результата по левому краю (по умолчанию – по правому относительно заданного количества выводимых символов);
«+» – результат всегда начинается со знака (+/-);
«#» – особая форма отображения результата.
Размер показывает сколько символов отводится для записи результата, может быть представлен в следующих форматах:
n – минимум n символов отводится для записи числа, недостающие символы заменяются пробелами;
0n – то же, но недостающие символы заменяются нулями;
* – список аргументов содержит размеры данных.
Точность показывает для вещественных символов количество знаков после десятичной точки.
Модификатор длины может принимать одно из значений:
F – «длинный» указатель;
N – «короткий» указатель;
h – short int;
l – long int, double;
L – long double.
Тип данного может принимать одно из значений:
%d, %i – знаковое десятичное целое;
%u – беззнаковое десятичное целое;
%o – беззнаковое восьмеричное целое;
%x, %X – беззнаковое шестнадцатеричное целое;
%f – знаковое вещественное;
%e, %E – знаковое вещественное в экспоненциальной форме;
%g, %G – знаковое вещественное, форма зависит от числа, размера и точности;
%c – символ;
%s – строка;
%% – символ «%»;
%n, %p – указатель.
Аргументы, передаваемые в функцию, должны соответствовать количеству и типу спецификаторам формата.
Для форматированного ввода данных из потока используется функция
fscanf(FILE* stream, const char* formatted_string, arguments, …)
Строка также может содержать спецификаторы формата, при этом:
– при невозможности предобразования строки в число, число принимает значение ноль;
– строкой считается слово до разделителя (пробел, табуляция, перевод строки).
Для стандартных потоков определены аналогичные функции:
printf(const char* formatted_string, arguments, …)
scanf(const char* formatted_string, arguments, …)
являющиеся аналогами описанных ранее функций, разница заключается в том, что используются стандартные потоки ввода и вывода (stdin, stdout) которые в качестве аргументов не указываются.
Определены функции, использующие вместо потока строку:
sprintf(char *dest, const char* formatted_string, arguments, …)
sscanf(char *src, const char* formatted_string, arguments, …)
1 Квадратные скобки не являются частью записи формата, а указывают на необязательность аргумента