Рассмотрим формат некоторых функций ввода вывода

Краткие теоретические сведения

 

При разработке консольных приложений популярным решением было применение функций форматированного текстового ввода вывода для создания диалоговых окон, таблиц, форм и элементов графики.

Для реализации подобных решений возможно применить следующие функции и их разновидности:

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()

Функция предназначена для очистки содержимого текстового экрана и перевода курсора в первую позицию. Даная функция не имеет входных параметров.