Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.60/1497: Рейтинг темы: голосов - 1497, средняя оценка - 4.60
frech
34 / 34 / 3
Регистрация: 17.07.2008
Сообщений: 570
1

Русские шрифты в консоли

02.08.2008, 16:35. Просмотров 274245. Ответов 60
Метки нет (Все метки)

всем привет. Я новичек, и у меня такой вопрос. Как написать сообщение с русскими буквами, чтоб нормально показывала? Например:
cout<<"hello world"; выводить сообщение нормальна? с английсками шрифтами
cout<<"привет мир"; выводить в каком не понятном языке, какие та закавычки.

Подобные темы:
22
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2008, 16:35
Ответы с готовыми решениями:

Очередные русские шрифты в консоли...
Помогите пожалуйста) вот код: #include &lt;iostream&gt; #include &quot;windows.h&quot; ...

Русские шрифты в консоли - продолжение
Всем привет. Я вижу(и прочитал) прилепленную тему на верху, но ответа на свой...

Как заставить консоль понимать русский язык? (русские шрифты в консоли)
Добрый вечер. Нужна ваша помощь С++ не понимает русский язык

Русские шрифты в c++
Работаем в Visual Studio 2010. В char переменную пишем информацию русскими...

Чтения из файла Русские шрифты
Не могу не как догнать перепробовал много вариантов не получается ,помогите...

60
body90
366 / 299 / 18
Регистрация: 26.05.2009
Сообщений: 2,676
14.09.2009, 15:54 41
Есть более интересный способ:
Создаешь новый проект, нажимаешь "Сохранить как...", в окне сохранения файла (возле кнопки "Сохранить") есть треугольничек, сохранить с кодировкой, "Да", и в списке выбираешь "Cirilic (DOS) - code page 866", "ОК".
Вот и будет тебе русский текст без всяких извращений со шрифтами, которые на другой машине всё равно будут стандартными...
5
kravam
быдлокодер
1709 / 896 / 105
Регистрация: 04.06.2008
Сообщений: 5,542
16.09.2009, 17:00 42
Цитата Сообщение от Search.. Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
#include <stdio.h> /* Для printf */ 
#include <locale.h> /* Для русского языка */   
 
int main(int argc, char * argv []) { 
 setlocale(LC_ALL,"Rus"); /* Обязательно должно быть первым */ 
 printf("Русский язык !\n");   
 return 0; 
}
У меня так не получается почему-то. Проблему решил, но по-другому. А хотелось бы так.
0
Paulie
Айхрень...
306 / 175 / 7
Регистрация: 02.06.2009
Сообщений: 1,078
16.09.2009, 17:18 43
kravam, вчера только пропарсил 1000 страниц мсдна в поиске проблемы нерусских иероглифов. Решил таки setlocaleoм, должно всё работать:
в начале функции _tmain() прописал:
setlocale(LC_ALL, "Russian"); и всё ок
0
kravam
быдлокодер
1709 / 896 / 105
Регистрация: 04.06.2008
Сообщений: 5,542
16.09.2009, 18:00 44
Я верю, что тебе везёт. Как и многим здесь. А мн не везёт, видишь как...
0
M128K145
Эксперт JavaЭксперт С++
8327 / 3548 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
16.09.2009, 19:03 45
kravam, какая среда?
0
kravam
быдлокодер
1709 / 896 / 105
Регистрация: 04.06.2008
Сообщений: 5,542
16.09.2009, 23:40 46
DEV C++ 4.9.9.2
0
M128K145
Эксперт JavaЭксперт С++
8327 / 3548 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
16.09.2009, 23:51 47
kravam, в dev setlocale не работает, поэтому CharToOemA тебе в помощь
0
kravam
быдлокодер
1709 / 896 / 105
Регистрация: 04.06.2008
Сообщений: 5,542
17.09.2009, 00:46 48
Я так и сделал
0
ivanch
1 / 1 / 0
Регистрация: 21.09.2009
Сообщений: 4
21.09.2009, 16:47 49
а что то типа такого не работает? сразу дваварианта с wprintf & wcout
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "iostream"
#include "windows.h"
 
int main()
{
    
    
    setlocale(LC_CTYPE,"RUS");
    wprintf(L"%s\n",L"Привет, мир!\n");
std::wcout<<L"Привет мир";
 
return 0;
}
у меня под visual C++ ода варианта работают идиально
1
Monte-Cristo
2796 / 1384 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
22.09.2009, 00:40 50
ivanch, если используется setlocale - то использование юникодных вариантов вывода - необезательно. С таким же успехом ты мог использовать обычный printf() или cout.
0
breeve
75 / 75 / 29
Регистрация: 01.08.2009
Сообщений: 177
24.09.2009, 20:17 51
Такая проблема. я значит написал:
setlocale (LC_ALL, ".1251");
далее вывожу все выодит по русски как надо. У меня стоит виста, запустил на хп - выводит каракули. что делать?

Добавлено через 2 минуты
Цитата Сообщение от M128K145 Посмотреть сообщение
kravam, в dev setlocale не работает, поэтому CharToOemA тебе в помощь
Кстати говоря пишу на dev.
0
xBot01
10 / 10 / 0
Регистрация: 25.09.2009
Сообщений: 17
25.09.2009, 01:38 52
Собалезную изучающим ЯП в ОС Windows.

Кто изучал <iomanip>?
Манипуляторы в Linux не хотят работать с русским языком. Кодировка UTF-8.
Кто решил эту проблему?
0
kravam
быдлокодер
1709 / 896 / 105
Регистрация: 04.06.2008
Сообщений: 5,542
25.09.2009, 18:15 53
breeve, посмотри сообщение N78
...а ну вот у тебя и у меня DEV C++. Сам же видишь, что не работает. Значит- другой вариант. А именно

CharToOemA

Хотя и этот вариант кривой. Как CharToOemA даст сбой, пиши собственную версию CharToOemA, как это сделал я.
0
fs444
7 / 11 / 3
Регистрация: 18.08.2009
Сообщений: 486
30.09.2009, 11:22 54
Есть более интересный способ:
Создаешь новый проект, нажимаешь "Сохранить как...", в окне сохранения файла (возле кнопки "Сохранить") есть треугольничек, сохранить с кодировкой, "Да", и в списке выбираешь "Cirilic (DOS) - code page 866", "ОК".
Вот и будет тебе русский текст без всяких извращений со шрифтами, которые на другой машине всё равно будут стандартными...
Справедливо для С++ Builder? Что-то я там такие настройки не нашел.
0
kravam
быдлокодер
1709 / 896 / 105
Регистрация: 04.06.2008
Сообщений: 5,542
01.10.2009, 18:34 55
http://kpolyakov.narod.ru/school/c/faq.htm#rus
У кого DEV C++ всем сюда.
14
Ziggi
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 5
23.10.2009, 23:39 56
а как в char ВВЕСТИ с КЛАВИАТУРЫ кирилицу?
VS 2008 expres(setlocale и всё выводится а вот ввести сложнее)
0
M128K145
Эксперт JavaЭксперт С++
8327 / 3548 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
24.10.2009, 09:57 57
Используй CharToOemA и OemToCharA из windows.h
1
SatanaXIII
Почетный модератор
Эксперт С++
5773 / 2773 / 376
Регистрация: 01.11.2011
Сообщений: 6,743
Завершенные тесты: 1
14.01.2014, 10:46 58
Хорошая статья, в которой популярно и обширно объясняется как и почему работает локализация и вообще что это такое:

Ссылка: ЛОКАЛИЗАЦИЯ КОНСОЛЬНЫХ ПРИЛОЖЕНИЙ В ЯЗЫКЕ C++

Скачать (pdf): ЛОКАЛИЗАЦИЯ КОНСОЛЬНЫХ ПРИЛОЖЕНИЙ В ЯЗЫКЕ C++.pdf
12
gromo
372 / 271 / 30
Регистрация: 04.09.2009
Сообщений: 1,214
14.01.2014, 19:01 59
Неплохая статья, приоткрывающая завесу тайны с Unicode и его кодировок (представлений).

Оригинал (англ) - http://www.joelonsoftware.com/articles/Unicode.html
Русский перевод
9
sourcerer
Модератор
Эксперт CЭксперт С++
4868 / 2053 / 325
Регистрация: 20.02.2013
Сообщений: 5,554
Записей в блоге: 24
Завершенные тесты: 1
19.09.2018, 18:59 60
Рецепт от DrOffset:
Цитата Сообщение от DrOffset Посмотреть сообщение
Работать будет везде (любая Windows NT, и любой компилятор для Windows поддерживающий стандарт С++98 и выше).
1
19.09.2018, 18:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2018, 18:59

Значения переменных - русские шрифты
Здравствуйте, такая проблема: Как сделать так чтобы если я создал string tmp =...

Русские буквы консоли
Знаю что таких тембыло очень много, но у меня никак не получается вывести слово...

Русские буквы в консоли
У меня прекрастно выводятся русские буквы в консоль, но если я ввожу русский...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru