Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата котвася:
но не правильно работает »
Не могу понять, но попробуй собрать такой, я этот пример когда-то тоже набирал.

Код: Выделить весь код
// ГЛАВА 8. рисунок 8.3
// перегруженные операторы, помещённые в поток
// и извлечение из потока
#include <iostream.h>
using std::cout;
using std::cin;
using std::endl;
using std::ostream;
using std::istream;

#include <iomanip>
using std::setw;

class PhoneNumber{
    friend ostream &operator<<(ostream &, const PhoneNumber &);
    friend istream &operator>>(istream &, PhoneNumber &);

private:
    char areaCode[4];     // трехцифровой код местности и нулевой символ
    char exchange[4];     // трехцифровой комутатор и нулевой символ
    char line[5];         // четырехцифровая линия и нулевой символ
 };

// перегруженная операция, помещённая в поток
// ( не может быть функцией-членом, если только нам
// не понадобилось бы активизировать её с cout<<somePhoneNumber; ).
ostream &operator<<(ostream &output, const PhoneNumber &num)
{
  output<< "("<<num.areaCode<<") "
        <<num.exchange<<"-"<<num.line;
  return output;             // разрешает вывод из потока <<a<<b<<c;
}

istream &operator>>(istream &input, PhoneNumber &num)
{
  input.ignore();               // пропуск (
  input>>setw(4)>>num.areaCode; // ввод кода местности
  input.ignore(2);              // пропуск ( и пробела
  input>>setw(4)>>num.exchange; // ввод коммутатора
  input.ignore();               // пропуск дефиса
  input>>setw(5)>>num.line;     // ввод линии
  return input;                 // разрешает ввод в поток >>a>>b>>c;
}

int main()
{
  int z;
  PhoneNumber phone;       // создание объекта phone

  cout<<"   ENTER NUMBER TELEFON V FORME (123) 456-7890:\n  ";

  // cin>>phone активизирует функцию operator>>
  // путем вызова operator>>(cin, phone)
  cin>>phone;

  // cout<<phone активизирует функцию operator<<
  // путем вызова operator<<(cout, phone)
  cout<<"   BIL VVEDEN NUMBER TELEFONA:  "<<phone<<endl;

  cin>>z;
        return 0;
}
//---------------------------------------------------------------------------

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:40, 25-07-2010 | #6