Работа в текстовом режиме
Функции ввода-вывода
Для операций ввода-вывода на 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.