2013-04-05 2 views
1

У меня есть простой класс регистратора, который я попытался превратить в принятие и вывод wstrings вместо строк.C++ wstring для файла вместо строки

Заголовок:

#include <fstream> 
using namespace std; 

class CLog 
{ 
    public: 
    CLog(wstring filename); 
    ~CLog(); 
    void WriteString(string uString); 
    private: 
    fstream m_stream; 
}; 

каст:

#include "stdafx.h"; 
#include "log.h"; 

CLog::CLog(wstring uPath) 
{ 
    m_stream.open(uPath); 
} 
void CLog::WriteString(string uString) 
{ 
    m_stream << uString.c_str() << endl; 
} 
CLog::~CLog() 
{ 
    m_stream.close(); 
} 

Кто-нибудь может предложить то, что я должен использовать вместо fstream? Я пробовал использовать wstringstream, но у него даже не было .open для вывода его в файл, поэтому я подумал, что это неправильный подход.

Я хотел бы сохранить поведение, которое он немедленно записывает в файл.

+1

смотрите здесь http://stackoverflow.com/questions/1509277/why-does-wide-file-stream-in-c-narrow-written-data-by-default – kassak

+0

Ссылка, которую вы опубликовали, информативна, но не то, что помогает. – tmighty

+0

была вещь, которую вы могли бы использовать - 'std :: wofstream' – kassak

ответ

4

Теперь я использую «wofstream» вместо «fstream», и он отлично работает.

Смежные вопросы