Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > CStdioFile


Автор: claster 20.6.2009, 22:49
Не пишет в файл "строка".Пишу на английском-всё нормально.
Пример:

CString s="строка";
 CStdioFile *file=new CStdioFile(CString("www.txt"),CFile::modeCreate|CFile::typeText|CFile::modeWrite);
file->WriteString(s); 
    file->Close();

Автор: Cheloveck 20.6.2009, 23:31
Цитата(claster @  20.6.2009,  23:49 Найти цитируемый пост)
CStdioFile *file=new CStdioFile(CString("www.txt"),CFile::modeCreate|CFile::typeText|CFile::modeWrite);

Жуть какая. А стандартные методы STL не подходят? std::ofstream например? Ну, ладно, не моё дело. Не юзал этот класс, но думаю, что дело всё в той же кодировке консоли. Юзай функцию CharToOem для преобразования.

Автор: Andrey44 22.6.2009, 07:05
Цитата(claster @  20.6.2009,  22:49 Найти цитируемый пост)
CString s="строка";
 CStdioFile *file=new CStdioFile(CString("www.txt"),CFile::modeCreate|CFile::typeText|CFile::modeWrite);
file->WriteString(s); 
    file->Close(); 
Жесть! new есть, а где delete?

Русский не пишет потому что юникод не включен.
Включи юникод и напиши вот так:
Код

CStdioFile file(L"www.txt",CFile::modeCreate|CFile::typeText|CFile::modeWrite);
file.WriteString(L"строка");
file.Close();

Автор: Earnest 22.6.2009, 09:52
Чушь это про Юникод. Как будто без Юникода никакого русского нет. 
Так таки ничего и не пишет в файл по команде WriteString? Или все-таки что-то пишет, но те то? И откуда ты знаешь, что не то. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)