Работа в текстовом режиме

Функции ввода-вывода

Для операций ввода-вывода на C++ можно использовать функции двух библиотек ввода/вывода — стандартной (scanf, printf) и потоковой (cin, cout). Потоковый ввод/вывод удобен в использовании, но работает медленнее стандартного. Поэтому, если в задаче надо считывать много входных данных (скажем, больше мегабайта) или много выводить, то не следует использовать потоковый ввод/вывод.

Приведем несколько функций ввода-вывода из стандартных библиотек:

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

Функция вывода "printf" выводит форматированные данные в стандартный поток (экран):

printf("<шаблон формата>",<список вывода>);

Шаблон формата задает тип выводимого значения, точность, положение в строке вывода. Знак '%' - это префикс спецификатора формата. Приведем несколько примеров вывода:

int a=197; float b=3.14159; char c='Z';

char s[10] = "Apple";

printf("A=%i B=%6.3f C=%c S=%s \n", a, b, c, s);

В строке 'printf'значение переменной 'a' согласно шаблону будет выведено как целое число, значение 'b' как вещественное число длиной 6 знакомест с 3 знаками после запятой c округлением. Значение 'c' - как символ, а значение 's' - как строка. Таким образом на экране получим следующий список значений:

A=197 B=3.142 C=Z S=Apple

 

Функция "scanf" выполняет форматированный ввод данных из входного потока (клавиатура):

scanf("%i", &a);

В результате в переменную 'a' будет записано значение, принятое с клавиатуры. Здесь &a - адрес ячейки памяти, где размещается переменная 'a'.

Функция 'gets()'считывает символьную строку с клавиатуры:

gets(s);

 

В потоковой библиотеке #include <iostream.h>операция вывода в выходной поток выглядит следующим образом:

cout<<"Текст"<<endl;

cout<<[Переменная]<<endl;

Параметр 'endl' выполняет перевод курсора на новую строку.

Оператор вывода может содержать несколько элементов, которые выводятся подряд друг за другом:

cout<<"A="<<a<<" B="<<b<<" C="<<c<<" S="<<s<<endl;

 

В этой же библиотеке имеется оператор ввода из входного потока:

cin >> a;

cin >> b >> c >> s;

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

cout<<"A = "; cin>>a;

cout<<"B = "; cin>>b

cout<<"C = "; cin>>c

cout<<"S = "; cin>>s

 

В текстовом режиме некоторые библиотечные функции позволяют работать с цветом и координатами текстового экрана. Экран дисплея в текстовом режиме состоит из 25 строк, каждая из них состоит из 80 знакомест. Одно знакоместо предназначено для вывода одного символа.

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

1.clrscr(); //Очистка экрана.

2.textcolor(<номер цвета>); //Установка цвета для вывода

символов.

3.textbackground(<номер цвета>); //Установка цвета для

вывода фона за символом.

4.gotoxy(<координата X>,<координата Y>);//Вывод курсора

на место с координатами X,Y.

5. cprintf("...",...); //Вывод текста с предварительно

заданным цветом.

6. 1+rand()%99; //Возвращает целое число в диапазоне от 1 до 99.