Начал с изучения консольных приложений под Win32 и захотелось выводить русские буквы, а для этого надо выводить буквы в дос-кодировке. Прошарив несколько сайтов, нашел решение, чуть-чуть дописал его. Может кто будет тоже искать - тогда вот оно:
Вывод русских букв в консоли С++
Код: Выделить всё
#include <iostream>
#include <windows.h> //отсюда будем использовать функцию конвертации win-текста в дос-текст
using std::cout; //это чтоб быстро обращаться к потоку вывода текста в консоль без всяких std
using std::endl; //а это чтоб быстро обращаться к символу конца строки, который также можно в виде \n писать
char buf[256]; //создаем на старте буфер 256 символов, и пусть он валяется в памяти до конца работы программы
char* dostext( char* str ) //функция - на входе указатель на массив букв в win-кодировке
{
CharToOemA( str, buf ); //вызываем из windows.h функцию перекодирования, результат будет валяться в нашем buf
return buf; //возвращаем указатель на buf
}
int main() //главный кусь программы
{
cout << dostext("Привет") << endl; //выводим в поток вывода "Привет" в дос-кодировке
cout << dostext("Медвед") << endl; //выводим в поток вывода "Медвед" в дос-кодировке
return 0;
}
Одна есть проблема: cout << dostext("Привет") << dostext("Медвед") << endl; выводит дважды "Привет", хотя по отладчику видно что буфер перезаписывается второй раз на новое значение. Видимо это какие-то замуты с выводом в поток cout.