[vc++]как писать в консоли по-русски?
setlocale
Исходники в досовской кодировке пиши.
#include <iostream.h>
#include "ansi2dosoutput.h"
void main
{
cout<<"АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"<<endl;
cout<<"абвгдеёжзийклмнопрстуфхцчшщъыьэюя"<<endl;
}
файл ansi2dosoutput.cpp:
#include "ansi2dosoutput.h"
ostream& operator<<(ostream& os, char* s)
{
for(int i = 0; s[i]; i++)
{
ifunsigned int(s[i])==unsigned int('Ё'
{
os<<char(unsigned int(240;
}
ifunsigned int(s[i])==unsigned int('ё'
{
os<<char(unsigned int(241;
}
else
if(unsigned int(s[i])<128)
{
os<<s[i];
}
else
ifunsigned int(s[i])>=unsigned int('А'&&(unsigned int(s[i])<=unsigned int('п'
{
os<<char(unsigned int(s[i])-unsigned int('А')+128);
}
else
if(unsigned int(s[i])>unsigned int('п'
{
os<<char(unsigned int(s[i])-unsigned int('р')+224);
}
}
return os;
}
файл ansi2dosoutput.h:
#include <iostream.h>
ostream& operator<<(ostream& os, char* s);
если нужно выводить много - будет тормозить, можно оптимизировать таблицей например
но для вывода сообщений в консоли в задачках по информатике производительности хватит

если нужны бонусные символы типа '№' итд - добавь пару лишних if
SetConsoleOutputCP
Оставить комментарий
marizha
msvs2005выходят только иероглифы