Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Поддрежка кирилицы в Visual C++ (http://forum.oszone.net/showthread.php?t=29677)

Wisp 05-06-2004 04:18 205287

При запуске программы в моем Visual C++ 5.0 кирилица отображается каракулями или не теми символами ( В самом редакторе Visual русский текст печатать можно ). Помогите, как можно решить эту проблему. Все дело скорее всего именно в Visual, так как в  моем Turbo Pascal, например, программы с русским текстом отображаются корректно. Создается такое впечатление, что смещена кодировака символов.

Vlad Drakula 05-06-2004 18:35 205288

Wisp
ты пишешь наверное консольные приложения?!

это праблемма очень известная, дело в том что когда ты пишещб код то применяется Win кодировка, а когда запускается программа то у нее Dos кодировка, в следствии чего сторока в Win кодировке отображается Dos шрифтом.

denbessonov 07-06-2004 19:53 205289

Стандартных подходов два:
- используй Unicode, т.е. вместо printf("строка"); используй #define UNICODE #include <tchar.h> ... _tprintf(L"строка"); почему-то эта же техника у меня не работает с потоками cin, cout
- используй собственный printf вроде
int conprintf(char* format, ...)
{
 char buffer2[1024], buffer[1024]; // наверное, хватит :)
 va_list va;
 va_start(va, format);
 vsprintf(buffer, format, va);
 va_end(va);
 CharToOem(buffer, buffer2); // или наоборот параметры, не помню
}
вместо обычного printf.

Лично мне второй способ ближе.

Добавлено:

Ой, сорри!
И еще последняя строчка в функции естественно printf(buffer2);


Время: 04:03.

Время: 04:03.
© OSzone.net 2001-