Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Марченко А.Л. -> "С++ бархатный путь " -> 124

С++ бархатный путь - Марченко А.Л.

Марченко А.Л. С++ бархатный путь — М.: Горячая линия - Телеком, 2005. — 399 c.
ISBN 5-93517-056-6
Скачать (прямая ссылка): barhatniyput2005.djvu
Предыдущая << 1 .. 118 119 120 121 122 123 < 124 > 125 126 127 128 129 130 .. 152 >> Следующая

ostream _FAR & JlTLESTRy operator« ( signtd char) /
ostre&n __FAR & _RTLEHTRY operator« (unsigned char);
// for the following, insert character representation // of numeric value
ostreaa
ostreaa
ostreaa
ostream
ostream
ostreaa
ostreaa
ostreaa
ostreaa
FAR & “FAR ?
“far &
"FAR 4 "FAR ? "FAR ?
"far & “far ?
"FAR ?
RTLENTRY
'rtlentry
’rtlentry
'rtlentry
’rtlentry
"rtlentry
’rtlentry
"rtlentry
“rtlentry
operator« operator« ope rat о r« operator« opexator« operator« operator« operator« opera tor«
(short);
(unsigned short) .
(int);
(unsigned int) ; (long);
(unsigned long); (float);
(double);
(long double);
//insert the nul1-terminated string ostreaa __FAR ? __RTL?NTRY operator« ostreae _far ? Rtlentry op*rator«
(const
(const
char JFAR *) signed char FAR +)
U«L?W«n __ІЛЛ * ^ЛіііЬПіПІ *tO?V\ IWRIl «-1.дТ7Ч<2 ЕЛК ¦ )
ostreaa _FAR ? _RTL?NTRY operator« (const unsigned char ^JSTA *)
ft insert character representation of the value of the pointer ostream _FAR ? ^RTLENTRY operator« (void _FAR *) ;
// extract froa streeiabuf, insert into this ostreae ostreea _FAR ? _R?L?HTRY operator« (streambuf _FAR M ;
Таким образом, в классе ostream представлен набор операторных функций, позволяющий стандартным образом организовать вывод значений всех основных типов данных. Благодаря возвращаемому значению, выражения вызова функций в операторе можно располагать в удобном для программиста порядке:
int І.Х «* 1; float fX - 3,14; char cXl - *Л' ; char cX2 - 65;
Char *pcX - "QWERTY";
cout. opera tor« (iX);
cout.operator«(fX) ,operator«(cXl) . operator«(cX2) .operator«(pcX)
Но главное, ради чего и были затрачены усилия по объявлению и определению всех этих операторных функций, — это возможность сокращённой формы вызова:
cout « ІХ « fX « cXl « сХ2 « рс)С;
И здесь весь C++! За лаконичностью, простотой, внешней интеплек-туальностью, - казалось бы, всего одна-единственная простая “операция" разбирается со всеми основными типами, - скрывается тяжёлая и напряжённая работа программиста и транслятора.
Объявление и определение множества перегруженных операторных функций позволяет строить изящные операторы с выражениями сокращённого вызова. После чего транслятор начинает работать в противопо-
333
ложном направлении: выражения сокращённого вызова преобразуются в полную форму вызова, затем производится сопоставление вызовов перегруженных функций.
Знакомство с механизмами ввода-вывода мы начали с выходного потока лишь по одной простой причине: сокращённая форма вызова операторной функции operator«() часто использовалась в примерах.
Механизмы ввода а C++ аналогичны. Входной поток по умолчанию связан с клавиатурой. Он представлен классом istream, его глобальный предопределённый объект сіп обеспечивает ввод информации.
В классе istream объявляется множество перегруженных функций-членов. В том числе функции get(). getlineO, read():
/*
* Unformatted extraction operations */
I і extract character* into an array
iatrean FAR I RTLENTK? gat< char FAR ¦, int, char - '\n'(;
iatrean FAR S “rTLEHTRY qet( aigned char “far ¦, int, char -
iatrean _FAR * _RTLENTRY get (unsigned char _FAR ¦, int, Char • ‘\n’ ) ;
iatrean FAR I _RTtENTRY read ( Char _FAR •, int) ;
iatrean _FAR I _RTLENTRY read ( signed char _FAR *, int);
iatrean _FAR С _RTLENTRY read(unsigned Char _FAJR *, antJ ;
// extract characters into art array up to termination char iatrean _FAR і _RTIXNTRY getlins< char FA* *,int,char-'\n');
iatrean _FAR t _RTLEHTRY getline(*igned char _FAR ¦, int,char” '\n') :
lstrea* _FAR & _HTLtHTRY getline(unsigned char _FAR * ,int.char” '\n') ;
// extract character* into a streambuf up to termination char istream _FAR & _RTLENTRY get(streambuf FAR і, char - 1 \n') ;
// extract a single character ietcea* _FAR t _RTLENTRY gett char
iatrean _FAR I _RTtSHTRY get С signed char
istrean _FAR t _RTLENTRY get(unsigned char
int _RTL?NTKY get{>;
Мы начнём с конца этого списка - с четвёрки функций, которые обеспечивают извлечение из входного потока отдельных символов.
Самый последний вариант функции getQ не имеет параметров. Функция извлекает из буфера входного потока один символ и возвращает его целочисленное значение:
finclude <iostream.h> void main ()
{
int ІХ m 1; iX « cin.getO ;
/» Формирование буфера входного потока гавврвается нажатием клавиши Enter или вводом сиывола EOF ('¦Z) . После этого функция gat() извлекает из потока первый символ. */ cout « (char)iX;
>
FAR () FAR і) FAR і)
334
Три других функции также извлекают символ из потока и помещают его по заданной ссылке. Эти функции, как большинство функций-членоа класса istream, возвращают ссылку на объект-представитель класса istream. Так что здесь также возможны построения “сцепленных" выражений.
Прочие варианты перегруженных функций этого списка (первая тройка объявлений) извлекают символы из потока и помещают их в буфер, представленный первым параметром. Этот процесс продолжается до тех пор, пока не встретится разделитель (третий параметр, по умолчанию проинициализированный символом '\п'), символ EOF, либо пока не будет прочитано определённое количество символов, задаваемое вторым параметром функции.
Предыдущая << 1 .. 118 119 120 121 122 123 < 124 > 125 126 127 128 129 130 .. 152 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.