Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / C / C++ / Введение в язык C++ / Потоки /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Вывод - Программирование от RIN.RU
Вывод



Форматированный Вывод


Пока << применялась только для неформатированного вывода, и на самом деле в реальных программах она именно для этого главным образом и применяется. Помимо этого существует также несколько форматирующих функций, создающих представление своего параметра в виде строки, которая используется для вывода. Их второй (необязательный) параметр указывает, сколько символьных позиций должно использоваться.


char* oct(long, int =0); // восьмеричное представление
char* dec(long, int =0); // десятичное представление
char* hex(long, int =0); // шестнадцатиричное представление
char* chr(int, int =0); // символ
char* str(char*, int =0); // строка


Если не задано поле нулевой длины, то будет производиться усечение или дополнение; иначе будет использоваться столько символов (ровно), сколько нужно.


Например:


cout << "dec(" << x
<< ") = oct(" << oct(x,6)
<< ") = hex(" << hex(x,4)
<< ")";


Если x==15, то в результате получится:


dec(15) = oct( 17) = hex( f);


Можно также использовать строку в общем формате:


char* form(char* format ...);
cout<




Виртуальная Функция Вывода


Иногда функция вывода должна быть virtual. Рассмотрим пример класса shape, который дает понятие фигуры:


class shape {
// ...
public:
// ...
virtual void draw(ostream& s); // рисует "this" на "s"
};




class circle : public shape {
int radius;
public:
// ...
void draw(ostream&);
};


То есть, круг имеет все признаки фигуры и может обрабатываться как фигура, но имеет также и некоторые специальные свойства, которые должны учитываться при его обработке.


Чтобы поддерживать для таких классов стандартную парадигму вывода, операция << определяется так:


ostream& operator<<(ostream& s, shape* p)
{
p->draw(s);
return s;
}


Если next - итератор типа определенного в #7.3.3, то список фигур распечатывается например так:


while ( p = next() ) cout << p;

<<<  Назад
 1  2 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Введение

Файлы и Потоки

Ввод

Работа со Строками

Буферизация

Эффективность

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь