Программирование >>  Программирование на языке c++ 

1 ... 100 101 102 [ 103 ] 104 105 106 ... 159


int wherexQ - возвращает горизонтальную координату курсора;

int whereyO - возвращает вертикальную координату курсора;

void window(int left, int top, int right, int bottom) - задает активное окно экрана с координатами (слева, сверху, справа, снизу).

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

ff include <constrea.h> файл заголовка для класса

conbuf

#include <iostream.h> void main(void) { conbuf b;

cout 123456789abcdef ; Результат:

123456789abcdef b.gotoxy{5,b.wherey()); перемещает курсор на

цифру 5

b.clreolO; На экране остается: 1234

b.clrscrO; Очистка экрана

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

Класс strstreambuf управляет процессами выделения и освобождения буферов ввода/вывода при работе со строками. Компоненты-функции этого класса выполняют низкоуровневые операции, которые являются базовыми для классов второй группы. Они редко используются непосредственно в программе пользователя.



8.2. Вывод данных

Язык С++ использует доопределенную версию оператора (сдвиг влево) для вывода данных в выходной поток, который обычно связан с экраном дисплея. Таким образом, если записать выражение

cout а;

и если а - это переменная, например, целого типа, то значение а будет выведено на экран в текущую позицию курсора. Если а имеет другой тип, то можно использовать то же выражение. Более того, выходной поток можно доопределить так, что в него можно будет выводить новые типы данных. Рассмотрим сначала типы данных, определенные в самом языке.

Для того чтобы иметь возможность работы с потоками ввода/вывода, в программу необходимо включить файл iostream.h, который описывает все необходимые средства (они включены в соответствующий класс iostream) для организации интерфейса. Обычно это делается в начале программы с помощью директивы:

#include <iostream.h>

Класс iostream является производным от многих других классов, один из которых, ostream, поддерживает вывод данных в выходной поток. Класс ostream доопределяет оператор для типов данных, включенных в язык. В приведенном выше примере cout - это объект класса ostream. Оператор имеет два операнда. Левым операндом является объект класса ostream, а правый операнд - это данное, тип которого задан в самом языке.

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

class ostream : public virtual ios {

public:

ostream& operator (const char*); вывод строк ostream& operator (char); вывод символов ostream& operator (short i) и т. п.



{return *this int(i); } ostream& operator (int); ostream& operator (long); ostream& operator {double); ostream& operator {const void*); вывод указателей функции operator, которые выводят беззнаковые (unsigned) значения

..................... };

Каждая функция operator возвращает ссылку на класс ostream (ostream&). В результате доопределенный оператор можно применить последовательно (слева направо) к нескольким операндам. Поясним сказанное примером:

cout а Ь; Это выражение можно представить так:

(cout а) Ь; или

(cout.operator (a)).operator (b);

Действительно, результат выражения в первых скобках - ссылка на класс ostream, а это означает, что можно выполнить следующую (вторую) функцию operator . Точно так же интерпретируются и более длинные выражения, например:

cout а b с d;

Здесь функция operator будет вызвана четыре раза слева направо. Если в приведенном выражении используются переменные разных типов, например:

int а; char b; long с; double d;

то автоматически вызываются соответствующие версии функции operator , т. е.: ostream::operator (int), ostream:: operator<<(char), ostream::operator<<(long) и ostream::operator<<(double).

Функция ostream: :operator (void*) выводит значение указателя, например:

void main(void)



1 ... 100 101 102 [ 103 ] 104 105 106 ... 159

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика