Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как записать файл в кодировке cp866 
:(
    Опции темы
sergey_85
Дата 6.4.2011, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

Репутация: нет
Всего: 1



Привет!

Пишу на MFC, по нажатию на кнопку выполняб такой код

Код

FILE *pFile;
char buffer[100] = "привет Сергей!";
    
pFile = fopen("c:\\myfile.txt" , "w");
if(pFile)
{
    fwrite (buffer , 1 , sizeof(buffer) , pFile);
}


Открываю файл... смотрю кодировка ANSI, что за.....! Как записать файл в кодировке CP866?

Спасибо за помощь!


--------------------
A good design always pays off.
PM MAIL   Вверх
Alca
Дата 6.4.2011, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 7
Всего: 50



wb?


--------------------
PM WWW ICQ Skype Jabber   Вверх
миг
Дата 6.4.2011, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 15.9.2008

Репутация: нет
Всего: 1



Для начала нужно прочитать, что такое кодировка СР866 и чем она отличается от других кодировок..
а потом подумать и написать, что то вроде этого
Код

#include<iostream.h>

int main()
{
    char ch[66]={'А','а','Б','б','В','в','Г','г','Д','д','Е','е','Ё','ё','Ж','ж',
        'З','з','И','и','Й','й','К','к','Л','л','М','м','Н','н','О','о','П','п','Р','р',
        'С','с','Т','т','У','у','Ф','ф','Х','х','Ц','ц','Ч','ч','Ш','Ш','Щ',щ',
        'Ъ','ъ','Ы','ы','Ь','ь','Э','э','Ю','ю','Я','я'};
    for(int i=0;i<66;i++)
    {
        if((192+(int)ch[i])>=128 &&(192+(int)ch[i])<=175)
            cout<<char(192+(int)ch[i])<<" ";
        else
            if((240+(int)ch[i])>=224 && (240+(int)ch[i])<=239)
                    cout<< (char)((int)ch[i]+240)<<" ";
            else
                if( ((int)ch[i]+328)==240)
                  cout<< (char)((int)ch[i]+328)<<" ";
                else
                    cout<< (char)((int)ch[i]+313)<<" ";
    }
    cout<<endl;    
    return 0;    
}

или использовать стандартные функции, которые преобразуют одну кодировку в другую))

Добавлено @ 19:27
только выводить не на экран а в файл.

Это сообщение отредактировал(а) миг - 6.4.2011, 19:32
--------------------
Oaks may fall when reeds stand the storm.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0423 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.