![]() |
При запуске программы в моем Visual C++ 5.0 кирилица отображается каракулями или не теми символами ( В самом редакторе Visual русский текст печатать можно ). Помогите, как можно решить эту проблему. Все дело скорее всего именно в Visual, так как в моем Turbo Pascal, например, программы с русским текстом отображаются корректно. Создается такое впечатление, что смещена кодировака символов.
|
Wisp
ты пишешь наверное консольные приложения?! это праблемма очень известная, дело в том что когда ты пишещб код то применяется Win кодировка, а когда запускается программа то у нее Dos кодировка, в следствии чего сторока в Win кодировке отображается Dos шрифтом. |
Стандартных подходов два:
- используй 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-