|
Программирование >> Программирование на языке c++
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)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |