Форум программистов, компьютерный форум CyberForum.ru

new cout - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
DartLenin
35 / 35 / 2
Регистрация: 24.05.2009
Сообщений: 178
18.10.2011, 16:38     new cout #1
Как создать свой объект-аналог cout?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
18.10.2011, 16:43     new cout #2
std::cout - объект класса std::ostream.
DartLenin
35 / 35 / 2
Регистрация: 24.05.2009
Сообщений: 178
18.10.2011, 16:46  [ТС]     new cout #3
мне нужен свой cout. например я хочу создать объект класса ostream, который называется ncout и делает то же самое, что и cout. Как это сделать?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
18.10.2011, 16:47     new cout #4
Цитата Сообщение от DartLenin Посмотреть сообщение
Как это сделать?
typedef std::cout ncout;
DartLenin
35 / 35 / 2
Регистрация: 24.05.2009
Сообщений: 178
18.10.2011, 16:50  [ТС]     new cout #5
нет. мне нужно реализовать его как будто, если бы не существовало cout.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
18.10.2011, 17:11     new cout #6
DartLenin, сделай класс, унаследованный от ostream, точнее лучше basic_ostream (если не путаю), перегрузи несколько виртуальных функций и все будет как надо.

Добавлено через 1 минуту
Если делать с буфером, то чуть посложнее.
DartLenin
35 / 35 / 2
Регистрация: 24.05.2009
Сообщений: 178
18.10.2011, 17:15  [ТС]     new cout #7
cout ведь просто объект класса ostream. его как то связали с stdout(или я что-то не так понимаю?). разве нельзя использовать конструктор ostream для создания cout?
Bers
Заблокирован
18.10.2011, 17:23     new cout #8
Цитата Сообщение от DartLenin Посмотреть сообщение
мне нужен свой cout. например я хочу создать объект класса ostream, который называется ncout и делает то же самое, что и cout. Как это сделать?
У меня такие смутные сомнения, что вопрос содержит 100% ответа
DartLenin
35 / 35 / 2
Регистрация: 24.05.2009
Сообщений: 178
18.10.2011, 17:29  [ТС]     new cout #9
Цитата Сообщение от Bers Посмотреть сообщение
У меня такие смутные сомнения, что вопрос содержит 100% ответа
Но я не знаю что передать конструктору ostream чтобы получить аналог cout.
Bers
Заблокирован
18.10.2011, 17:35     new cout #10
Цитата Сообщение от DartLenin Посмотреть сообщение
Но я не знаю что передать конструктору ostream чтобы получить аналог cout.
Есть такая замечательная вещь, рекомендую!
http://www.cplusplus.com/reference/i...tream/ostream/
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
18.10.2011, 17:38     new cout #11
C++
1
2
    std::ostream *ncout;
    ncout = &std::cout;
Может быть вам указатель надо?
DartLenin
35 / 35 / 2
Регистрация: 24.05.2009
Сообщений: 178
18.10.2011, 17:48  [ТС]     new cout #12
Цитата Сообщение от Bers Посмотреть сообщение
Есть такая замечательная вещь, рекомендую!
http://www.cplusplus.com/reference/i...tream/ostream/
это было первое место куда я зашел) но там используется файлбаф, а мне нужно вывести на консоль. хм...если только инициализировать stdout'ом...хм, с остримом и вправду работает, а вот с наследником нет, пойду разбираться, пока спасибо)
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
18.10.2011, 17:51     new cout #13
Цитата Сообщение от Dekio Посмотреть сообщение
Может быть вам указатель надо?
Зачем? Все проще
C++
1
std::ostream& ncout = std::cout;
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,136
Записей в блоге: 26
18.10.2011, 21:14     new cout #14
Господа, советующие заиспользовать существующий cout, поймите вы наконец, что ТС'у нужно научиться реализовать самому что-то подобное, а никак не задействовать существующий cout методом извратов
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2011, 08:15     new cout
Еще ссылки по теме:

cout.setf и cout.precision C++
C++ cout << . << . <<
В чем разница std::cout и просто cout? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
19.10.2011, 08:15     new cout #15
можно архаичным способом.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>
 
class mycout {
public:
  mycout& operator << (char ch) { 
    putc(ch, stdout);
    return *this;
  }
  mycout& operator << (const char* str) { 
    fprintf(stdout, str);
    return *this;
  }
  mycout& operator << (float f) {
    fprintf(stdout, "%f", f);
    return *this;
  }
  mycout& operator << (double d) {
    fprintf(stdout, "%lf", d);
    return *this;
  }
  mycout& operator << (int n) {
     fprintf(stdout, "%d", n);
     return *this;
  }
  mycout& operator << (long n) {
     fprintf(stdout, "%ld", n);
     return *this;
  }
  mycout& operator << (unsigned n) {
      fprintf(stdout, "%u", n);
      return *this;
  }
 //...
} _cout;
 
int main(){
   _cout << '1' << '+' << '2' << '\n';
   _cout << "Hello" << ' ' << "Ocean !!!" << '\n';
 
   _cout << 3.1459 << '|' << 34.96f << '\n';
   _cout << "int: " << 7000 << '\n' << "long: " << 7000L << '\n';
   _cout << "unsigned: " << 45000u << '\n';
   getchar();
   return 0;
}
Yandex
Объявления
19.10.2011, 08:15     new cout
Ответ Создать тему
Опции темы

Текущее время: 02:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru