Решил для общего развития освоить наконец С++ консоль (MV С++ 6.0), и с удивлением обнаружил, что она работает в ДОС кодировке: Код (Text): #include "stdafx.h" #include "stdio.h" //#define UNICODE // <--это не влияет на результат int main(int argc, char* argv[]) { printf("= = = Русский текст = = =\n"); printf("= = = ђгббЄЁ© ⥪бв = = =\n"); return 0; } cprintf из conio.h ведёт себя также. Есть сишный способ переключить кодировку или только писать "белиберду" вместо русского текста? Или я не те .h подключаю?
_DEN_ Нету счастья - вообще никакого результата нету ( Nouzui При том что преобразовать кодировку через OemToChar и CharToOem не проблема - непонятно почему виндовый MV С++ 6.0 компилятор это выдаёт, и как с этим бороться на его уровне.
как сделать так, чтобы строки, набранные в исходнике в виндовой кодировке, записывались в бинарник перекодированными в ASCII? Не знаю, нет у компилера такой опции ставь в редакторе ASCIIшный шрифт и пиши в ASCII )) только нужно будет еще такую раскладку клавиатуры найти ps: а вообще здесь, кажется, уже была тема про кодирование строк перед компиляцией с использованием pre-build steps. Не помню, к чему там в итоге пришли.. поищи, если хочешь
Nouzui Нет не так конвертировать кодировку при наборе текста тоже не проблема (просты видок у проги специфический получается) Но когда я в МАСМЕ работаю с API: GetStdHandle \ WriteFile - виндовая кодировка прекрасно выводится на консоль без всяких преобразований. Понятно что и в С можно эти АПИ задействовать, но хотелось бы именно штатными средствами С
Nouzui Да увы ты прав - это она в файл прекрасно с консоли перенаправляется Значит дело действительно в самой консоли и С тут не при чём Тогда вопрос снят. Всем спасибо.