Консультация № 172660
26.09.2009, 16:28
0.00 руб.
07.10.2009, 03:53
0 4 2
Уважаемый эксперт у меня возникла проблема. При написании консольной программы при выводе какого
либо слова на русском языке это слово отображается неправильно (cout<<"привет").
Пробовал различные шрифты подошел только Terminal , но возникли проблемы так как не совпадает
раскладка клавиатуры. Что можете посоветовать?

Обсуждение

Неизвестный
26.09.2009, 19:33
общий
Или посмотрите ответы Micren'а
Неизвестный
28.09.2009, 04:22
общий
это ответ
Здравствуйте, ШЕЛЕПОВ.

Перед выводом текста производите перекодировку с помощью CharToOem (Можно ещё и локалями, но у меня не заработало). Пример:

int main(){
char Str[]="Привет, мир!\n";
CharToOemA(Str, Str);
printf(Str);
}
Неизвестный
28.09.2009, 08:47
общий
это ответ
Здравствуйте, ШЕЛЕПОВ.
Подключите заголовочный файл "locale.h", а в самом начале программы вызовите функцию setlocale(LC_ALL, "russian").
Неизвестный
02.10.2009, 22:00
общий
Калеев Владимир Викторович:
Подключите заголовочный файл "locale.h", а в самом начале программы вызовите функцию setlocale(LC_ALL, "russian").

в какой ОС это используется? В *nix нет необходимости при русской консоле что-то править, а в Windows это бестолку.
достаточно в начале программы вызвать system("chcp 1251");
Форма ответа