Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
DartLenin
36 / 36 / 4
Регистрация: 24.05.2009
Сообщений: 178
#1

new cout - C++

18.10.2011, 16:38. Просмотров 1239. Ответов 14
Метки нет (Все метки)

Как создать свой объект-аналог cout?
http://www.cyberforum.ru/cpp-beginners/thread1516456.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2011, 16:38
Я подобрал для вас темы с готовыми решениями и ответами на вопрос new cout (C++):

Подскажите почему после первого cout программа не останавливается для ввода строки, а выводит второй cout
Подскажите почему после первого cout программа не останавливается для ввода...

В чем разница std::cout и просто cout?
Ребят ,подскажите на простом языке для чайников . В чем разница std::cout и...

Cout like: перегрузить оператор<< по примеру объекта cout для extern объекта пользовательского типа
Мне нужен extern объект по примеру cout с перегруженным оператором. Я нечто...

cout.setf и cout.precision
Здравствуйте. В одной книге увидел строчку кода: cout.precision(2);...

cout vs. std::cout
всем доброго времени суток. начал самостоятельно изучать c++. скачал в сети...

14
silent_1991
Эксперт С++
5007 / 3066 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
18.10.2011, 16:43 #2
std::cout - объект класса std::ostream.
0
DartLenin
36 / 36 / 4
Регистрация: 24.05.2009
Сообщений: 178
18.10.2011, 16:46  [ТС] #3
мне нужен свой cout. например я хочу создать объект класса ostream, который называется ncout и делает то же самое, что и cout. Как это сделать?
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
18.10.2011, 16:47 #4
Цитата Сообщение от DartLenin Посмотреть сообщение
Как это сделать?
typedef std::cout ncout;
0
DartLenin
36 / 36 / 4
Регистрация: 24.05.2009
Сообщений: 178
18.10.2011, 16:50  [ТС] #5
нет. мне нужно реализовать его как будто, если бы не существовало cout.
0
gooseim
Эксперт С++
510 / 414 / 92
Регистрация: 23.09.2010
Сообщений: 1,159
18.10.2011, 17:11 #6
DartLenin, сделай класс, унаследованный от ostream, точнее лучше basic_ostream (если не путаю), перегрузи несколько виртуальных функций и все будет как надо.

Добавлено через 1 минуту
Если делать с буфером, то чуть посложнее.
0
DartLenin
36 / 36 / 4
Регистрация: 24.05.2009
Сообщений: 178
18.10.2011, 17:15  [ТС] #7
cout ведь просто объект класса ostream. его как то связали с stdout(или я что-то не так понимаю?). разве нельзя использовать конструктор ostream для создания cout?
0
Bers
Заблокирован
18.10.2011, 17:23 #8
Цитата Сообщение от DartLenin Посмотреть сообщение
мне нужен свой cout. например я хочу создать объект класса ostream, который называется ncout и делает то же самое, что и cout. Как это сделать?
У меня такие смутные сомнения, что вопрос содержит 100% ответа
0
DartLenin
36 / 36 / 4
Регистрация: 24.05.2009
Сообщений: 178
18.10.2011, 17:29  [ТС] #9
Цитата Сообщение от Bers Посмотреть сообщение
У меня такие смутные сомнения, что вопрос содержит 100% ответа
Но я не знаю что передать конструктору ostream чтобы получить аналог cout.
0
Bers
Заблокирован
18.10.2011, 17:35 #10
Цитата Сообщение от DartLenin Посмотреть сообщение
Но я не знаю что передать конструктору ostream чтобы получить аналог cout.
Есть такая замечательная вещь, рекомендую!
http://www.cplusplus.com/reference/iostream/ostream/ostream/
1
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 499
Регистрация: 23.11.2010
Сообщений: 3,377
Записей в блоге: 1
18.10.2011, 17:38 #11
C++
1
2
    std::ostream *ncout;
    ncout = &std::cout;
Может быть вам указатель надо?
0
DartLenin
36 / 36 / 4
Регистрация: 24.05.2009
Сообщений: 178
18.10.2011, 17:48  [ТС] #12
Цитата Сообщение от Bers Посмотреть сообщение
Есть такая замечательная вещь, рекомендую!
http://www.cplusplus.com/reference/iostream/ostream/ostream/
это было первое место куда я зашел) но там используется файлбаф, а мне нужно вывести на консоль. хм...если только инициализировать stdout'ом...хм, с остримом и вправду работает, а вот с наследником нет, пойду разбираться, пока спасибо)
0
diagon
Higher
1937 / 1203 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
18.10.2011, 17:51 #13
Цитата Сообщение от Dekio Посмотреть сообщение
Может быть вам указатель надо?
Зачем? Все проще
C++
1
std::ostream& ncout = std::cout;
0
Evg
Эксперт CАвтор FAQ
18937 / 6898 / 512
Регистрация: 30.03.2009
Сообщений: 19,432
Записей в блоге: 30
18.10.2011, 21:14 #14
Господа, советующие заиспользовать существующий cout, поймите вы наконец, что ТС'у нужно научиться реализовать самому что-то подобное, а никак не задействовать существующий cout методом извратов
1
xAtom
917 / 742 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
19.10.2011, 08:15 #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;
}
0
19.10.2011, 08:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2011, 08:15
Привет! Вот еще темы с решениями:

почему то не переводит на другую строку cout << "введенный пункт назначения:" << a[i].pn << ' ' ; cout << "введенный пункт назначения:" << a[i].num
struct Train { char pn ; unsigned int num; char time ; }; void Copy...

[C++] cout От A до Z и от 0 до 9
Атач - задание, Задание из книжки Бьярна Страуструпа Вот что знаю: //...

cout
for(i=1;i&lt;=n;i++) cout&lt;&lt;'|'&lt;&lt;left&lt;&lt;internal&lt;&lt;ex; что здесь ни то

cout
Всем привет! В С++ не силён особо, такой вопрос. Дан массив, все элементы,...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru