Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2012, 11:42   #1
artemoning
Пользователь
 
Регистрация: 20.09.2012
Сообщений: 23
По умолчанию Собственый манипулятор с параметрами

#include <iostream>
#include <iomanip>
using namespace std;

ostream& manip(ostream& st, int k)
{
st<<"**";
st.width(6);
st<<k;
st<<"**";
return st;
}

void main()
{
int f=10;
cout<<manip(cout,f);
system("pause");
}

прграмма не работает, что не правильно сделал? не могу передать параметр манипулятору!
artemoning вне форума Ответить с цитированием
Старый 20.09.2012, 12:33   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

artemoning

прграмма не работает, что не правильно сделал?

Все. o_O

Код:
#include <iostream>
#include <iomanip>

struct Foo
{
   Foo(int w) : width_(w){}
   int width_;
};

std::ostream& operator<< (std::ostream& os, const Foo& foo)
{
  os << "**";
  os.width(foo.width_);
  os << "**";

  return os;
}

int main()
{
    std::cout << Foo(10);
}
Rififi вне форума Ответить с цитированием
Старый 20.09.2012, 15:20   #3
artemoning
Пользователь
 
Регистрация: 20.09.2012
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Rififi Посмотреть сообщение
artemoning

прграмма не работает, что не правильно сделал?

Все. o_O

Код:
#include <iostream>
#include <iomanip>

struct Foo
{
   Foo(int w) : width_(w){}
   int width_;
};

std::ostream& operator<< (std::ostream& os, const Foo& foo)
{
  os << "**";
  os.width(foo.width_);
  os << "**";

  return os;
}

int main()
{
    std::cout << Foo(10);
}
а дял чего нужно было делать это?
Код:
struct Foo
{
   Foo(int w) : width_(w){}
   int width_;
};
artemoning вне форума Ответить с цитированием
Старый 20.09.2012, 16:02   #4
artemoning
Пользователь
 
Регистрация: 20.09.2012
Сообщений: 23
По умолчанию

подскажите что и как!
artemoning вне форума Ответить с цитированием
Старый 21.09.2012, 08:51   #5
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Вы написали функцию, которая возвращает поток вывода, и передаете её результат на вывод потоку вывода. Что тут не так? Тут все не так)

Rififi написал отдельный класс и перегрузил для него operator<< для использования его потоками вывода.
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 21.09.2012, 17:34   #6
artemoning
Пользователь
 
Регистрация: 20.09.2012
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
Вы написали функцию, которая возвращает поток вывода, и передаете её результат на вывод потоку вывода. Что тут не так? Тут все не так)

Rififi написал отдельный класс и перегрузил для него operator<< для использования его потоками вывода.
а нельзя было просто перегрузить манипулятор?
artemoning вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедура с параметрами admin22 Паскаль, Turbo Pascal, PascalABC.NET 2 02.10.2011 09:26
Запрос с параметрами us4us SQL, базы данных 1 20.05.2011 05:53
конструктор с параметрами vanek1 Помощь студентам 1 12.05.2011 23:00
программа с типизированными параметрами-значениями и параметрами-переменными Kira09 Паскаль, Turbo Pascal, PascalABC.NET 1 20.12.2010 22:23