[vc++]как писать в консоли по-русски?

marizha

msvs2005
выходят только иероглифы

okunek

setlocale

kruzer25

Исходники в досовской кодировке пиши.

elenangel

файл main.cpp:

#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

otets-mihail

SetConsoleOutputCP
Оставить комментарий
Имя или ник:
Комментарий: