Рассмотрим формат некоторых функций ввода вывода
Краткие теоретические сведения
При разработке консольных приложений популярным решением было применение функций форматированного текстового ввода вывода для создания диалоговых окон, таблиц, форм и элементов графики.
Для реализации подобных решений возможно применить следующие функции и их разновидности:
printf() – форматированный вывод текстовой строки в стандартный поток вывода;
scanf() – форматированный ввод текстовой строки из стандартного потока ввода
gotoxy() – перевод позиции курсора
textcolor() – определение цвета текста, выводимого функцией cprintf().
textbackground() – определение цвета заливки фона текста, выводимого функцией cprintf().
cprintf() – форматированный вывод текстовой строки в стандартный поток вывода, цвет которой определяется функциями textcolor() и textbackground();
clrscr() – очистка содержимого текстового экрана и перевод курсора в первую позицию первой строки.
Для применения данных функций в исходный текст программы необходимо включить заголовочный файл стандартной библиотеки ввода вывода “stdio.h” и библиотеки консольного ввода вывода Borland C++ Builder “conio.h”.
Рассмотрим формат некоторых функций ввода вывода
Функция форматированного вывода текстовой строки в стандартный поток вывода printf()
Функция предназначена для передачи в стандартный поток вывода форматированной текстовой строки.
Формат функции:
printf(строка_форматированного_вывода, набор параметров);
набор параметров – последовательность переменных, имена которых перечисляются через запятую, содержимое которых будет отображено в строке форматированного вывода.
строка_форматированного_вывода – текстовая строка, содержащая последовательность символов для вывода и символы форматирования.
Символы форматирования текста предназначены для форматирования выводимого текста и замены содержимым переменных, содержащихся в наборе параметров функции. К данным можно отнести символы “эскейп последовательности” и символы автоматической замены текста:
“%%” – вывод символа ‘%’;
“% флаг формат_вывода” – данная последовательность в выводимой текстовой строке будет заменена содержимым переменной, передаваемой в наборе параметров.
Для определения формата вывода можно применить следующие ключи:
с – вывод в формате ASCII символа;
d – вывод в формате без знакового целого;
f – вывод в формате числа с плавающей точкой;
e – вывод в формате числа с плавающей точкой с показателем степени;
o – вывод в формате целого восьмеричного числа;
u – целое десятичное без знака;
x – целое шестнадцатеричное без знака;
s – вывод в формате строки. В данном случае в качестве параметра функции printf() необходимо передать адрес области памяти, содержащей первый элемент строки.
Для дополнительного форматирования выводимого текста применяются флаги:
*.* – определяет количество символов в выводимом значении, где ‘*’ любое целое число. Значение перед точкой определяет количество знакомест, занимаемых выводимым значением. Значение числа после точки определяет количество в дробной части (если дробная часть присутствует);
- – определяет выравнивание выводимого текста по левому краю (по умолчанию выравнивание происходит по правому краю);
+ – вывод положительных чисел производить со знаком ‘+’.
Символы “эскейп последовательности” – представляют собой начинающиеся с символа ‘\’ обозначения непечатаемых символов, таких как:
‘\n’ – перевод курсора на новую строку;
‘\t’ – табуляция;
‘\\’–‘\’;
‘\r’ – перевод курсора на начало строки;
‘\b’ – переместить курсор на один символ назад;
‘\0’ – символ конца строки.
Функция форматированного ввода текстовой строки из стандартного потока ввода scanf()
Функция предназначена для приема форматированной текстовой строки из стандартного потока ввода.
Формат функции:
scanf(строка_форматированного_вывода, набор параметров);
набор параметров – последовательность адресов переменных, которые перечисляются через запятую, по которым будет осуществляться передача вводимых данных.
строка_форматированного_вывода – текстовая строка, содержащая символы форматирования.
Формат ввода данной функции определяется аналогично функции printf().
Функция перемещения позиции курсора gotoxy()
Функция предназначена для перемещения курсора в заданную позицию строки терминала ввода вывода.
Формат функции:
gotoxy(int x, int y);
int y – номер строки в формате целого числа;
int x – позиция знакоместа в строке в формате целого числа;
Нумерация строк и знакомест в строке производится от левого верхнего угла экрана. Значения, передаваемы в качестве параметров позиции курсора, не должны быть меньше единицы, иначе эти значения не будут значимыми.
Функции определения цветов текста textcolor() и textbackground()
Функции предназначены для определения цветов символов и фона в тексте, выводимом при помощи функции cprintf().
Формат функций:
textcolor(int color);
textbackground(int color);
int color – код устанавливаемого цвета, должен быть представлен в виде целого числа в диапазоне значений от 0 до 15 (от черного к белому). Установленная цветовая схема будет применена к тексу, выводимому функцией cprintf(), после вызова представленных функций.
Функция форматированного вывода текстовой строки в стандартный поток вывода cprintf()
Функция предназначена для передачи в стандартный поток вывода форматированной текстовой строки, цвет которой определен в функциях textcolor() и textbackground().
Применение функции cprintf() аналогично применению функции printf().
Функция очистки экрана clrscr()
Функция предназначена для очистки содержимого текстового экрана и перевода курсора в первую позицию. Даная функция не имеет входных параметров.