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

Переопределение оператора <<, класса ofstream - C++

Восстановить пароль Регистрация
 
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
16.10.2013, 19:26     Переопределение оператора <<, класса ofstream #1
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
#ifndef COUT_RUS_H
#define COUT_RUS_H
#include <iostream>
#include <windows.h>
namespace rus
{
 
class Ccout
{
public:
    friend std::ostream& operator << (std::ostream &f , const char * s)
    {
        char buf[256];
        CharToOem(s,buf);
        f << buf;
        return f;
    }
    Ccout(){}
    ~Ccout(){}
};
Ccout cout;
}
 
#endif // COUT_RUS_H
C++
1
   rus::cout << "русская строка"  ;
Добавлено через 10 секунд
что я делаю не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2013, 19:26     Переопределение оператора <<, класса ofstream
Посмотрите здесь:

Переопределение оператора== C++
C++ Переопределение оператора присваивания
Переопределение оператора в классе C++
C++ Переопределение оператора
Переопределение БИНАРНОГО оператора внутри класса C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
B@R_LOG
 Аватар для B@R_LOG
18 / 18 / 0
Регистрация: 03.07.2013
Сообщений: 49
16.10.2013, 19:50     Переопределение оператора <<, класса ofstream #2
трудности с CharToOem
Может поможет.
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
16.10.2013, 19:50     Переопределение оператора <<, класса ofstream #3
Этот оператор должен быть свободной функцией, а у Вас - член класса Ccout.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
16.10.2013, 20:11  [ТС]     Переопределение оператора <<, класса ofstream #4
C++
1
2
3
4
5
6
7
std::ostream& operator << (std::ostream &f , const char * s)
    {
        char buf[256];
        CharToOem(s,buf);
        std::cout << buf;
        return f;
    }
C++
1
   std::cout <<"русский текст" ;
теперь вылетает ошибка при выполнении
0x10
16.10.2013, 20:17
  #5

Не по теме:

Цитата Сообщение от Fyret Посмотреть сообщение
Этот оператор должен быть свободной функцией, а у Вас - член класса Ccout.
Там friend, так что не надо...

Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
16.10.2013, 21:06     Переопределение оператора <<, класса ofstream #6
Van111, прошу прощения, поспешил с ответом. Пытаюсь понять, что Вы хотите сделать. Может, так:
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
namespace rus
{
    template< class T >
    class Ccout
    {
    public:
        Ccout(T& t)
            : out( t )
        {
        }
 
        ~Ccout()
        {
        }
 
        Ccout& operator << ( const char* s )
        {
            char buf[256];
            CharToOem( s,buf );
            out << buf;
            return *this;
        }
 
    private:
        T& out;
    };
 
    Ccout< std::ostream > cout( std::cout );
}
...
rus::cout << "русская строка" << " и вторая";
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2013, 21:53     Переопределение оператора <<, класса ofstream
Еще ссылки по теме:

Многоугольник. Переопределение оператора += C++
C++ Переопределение оператора () для своего класса
Переопределение оператора ++ C++

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

Или воспользуйтесь поиском по форуму:
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
16.10.2013, 21:53  [ТС]     Переопределение оператора <<, класса ofstream #7
Fyret, да, спасибо,я уже сделал)
Yandex
Объявления
16.10.2013, 21:53     Переопределение оператора <<, класса ofstream
Ответ Создать тему
Опции темы

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