Консоль работает в 866 кодировке, и единственное, что можно сделать - конвертировать все сообщения в 866, или работать с Unicode-версией консоли.
Вот исходник с конвертированием:
#include <iostream.h>
#include <string.h>
#include <windows.h>
ostream& operator << (ostream& stream, char* rout)
{
char* tmp;
tmp = new char[strlen(rout) + 1];
CharToOem(rout, tmp);
stream.write(tmp, strlen(tmp));
delete [] tmp;
return stream;
}
void main()
{
cout << "Русский текст" << endl;
}
пролетал этот исходник тут не так давно и неоднократно, просто ссылку дольше искать, чем исходник
плюс где-то видел, где - не помню, описание как сделать консоль юникодной, сходу сказать не могу, если надо будет - поищу, или кто-нибудь, кто пользовался напишет.