С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/10: Рейтинг темы: голосов - 10, средняя оценка - 5.00
ququ_smile
1 / 1 / 3
Регистрация: 28.01.2013
Сообщений: 164
1

Русский текст в консоли

19.07.2013, 19:00. Просмотров 1870. Ответов 29
Метки нет (Все метки)

Проблема банальная - русский текст в консоли. До конца в кодировках я так и не разобрался, поэтому прошу помощи. Я нашел 3 способа как решить эту проблему :
1) setlocale( LC_ALL,"Russian" ) // Как я понял она просто меняет кодировку консоли.Где-то читал что на XP у неё проблемы. У меня XP SP2 и среда code blocks. В общем она не пашет у меня.
2)CharToOem() // Как я понял преобразует строку в ОЕМ набор символов. Почему-то раньше эта функция работала без проблем, а теперь на отказ... вот я приведу пример функции, которая должна преобразовывать текст в ОЕМ и выводит строку на экран:
C++
1
2
3
4
5
6
void rcout(char *str)
{
    char message[100];
    CharToOem(str,message);
    std::cout<<message;
}
3) SetConsoleCP(1251);
SetConsoleOutputCP(1251);
В этом случае я просто нашел эти функции (которые так же не работают). Я понял, что эти функции что-то делают с кодировкой в консоли, но так и не понял как. Может кто-нибудь наглядно объяснить что они делают?

Кто знает в чем может быть проблема таких бед?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2013, 19:00
Ответы с готовыми решениями:

Русский текст в консоли
Мне нужно чтобы когда я напишу свое имя по русски и оно выводиться по русски у...

Русский текст в консоли
Пользуюсь книгой для обучения visual с++, дан базовый код #include &lt;iostream&gt;...

Русский текст в консоли (не одно и то же)
Здравствуйте. В прикрепленной выше темке нашел вот такую программу:...

Как с консоли записать в файл русский текст
Как с консоли записать в файл русский текст? Если так, то пишется только...

Рисование ASCII кодами и русский текст в консоли
Всем добрый вечер. И вот такой вопрос есть. Сначала печатаю в консоли текст а...

29
Jupiter
Каратель
Эксперт С++
6570 / 3991 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.07.2013, 19:05 2
Цитата Сообщение от ququ_smile Посмотреть сообщение
а теперь на отказ...
это как?

Добавлено через 1 минуту
Цитата Сообщение от ququ_smile Посмотреть сообщение
За это тему меня побьют, но все же
Проблема банальная - русский текст в консоли.
чай не на МКС, знание русского необязательно. учите английский!
1
ququ_smile
1 / 1 / 3
Регистрация: 28.01.2013
Сообщений: 164
19.07.2013, 19:06  [ТС] 3
Цитата Сообщение от Jupiter Посмотреть сообщение
это как?
Просто Раньше работала, а теперь нет...
вот в этом примере выводит кракозябры:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <windows.h>
 
void rcout(char*);
 
int main()
{
    double miles= -1;
    rcout("Введите кол-во миль\n");
    std::cin>>miles;
    return 0;
}
 
void rcout(char *str)
{
    char message[100];
    CharToOem(str,message);
    std::cout<<message;
}
0
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.07.2013, 19:09 4
Для Code::Blocks:

C++
1
2
3
4
5
6
7
#include <windows.h>
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
...
В свойствах консоли выбрать шрифт Lucida Console. Установка шрифта Lucida Console
1
ququ_smile
1 / 1 / 3
Регистрация: 28.01.2013
Сообщений: 164
19.07.2013, 19:09  [ТС] 5
Цитата Сообщение от Jupiter Посмотреть сообщение
чай не на МКС, знание русского необязательно. учите английский!
Да но я живу в русскоязычной стране. Думаю, что знания как заставить говорить консоль по-русски мне все же понадобятся)
0
duhast_vladisla
Заблокирован
19.07.2013, 19:11 6
Цитата Сообщение от ququ_smile Посмотреть сообщение
Да но я живу в русскоязычной стране
даже китайские программисты ботают инглиш.
0
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.07.2013, 19:11 7
Цитата Сообщение от ququ_smile Посмотреть сообщение
У меня XP SP2 и среда code blocks
У меня тоже.
0
ququ_smile
1 / 1 / 3
Регистрация: 28.01.2013
Сообщений: 164
19.07.2013, 19:15  [ТС] 8
Не пашет : С
0
Миниатюры
Русский текст в консоли  
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.07.2013, 19:18 9
Работа.
0
Миниатюры
Русский текст в консоли  
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.07.2013, 19:18 10
Цитата Сообщение от alsav22 Посмотреть сообщение
В свойствах консоли выбрать шрифт Lucida Console. Установка шрифта Lucida Console
Это сделали?
0
ququ_smile
1 / 1 / 3
Регистрация: 28.01.2013
Сообщений: 164
19.07.2013, 19:20  [ТС] 11
Цитата Сообщение от alsav22 Посмотреть сообщение
Это сделали?
Да, на скрине даже видно
0
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.07.2013, 19:21 12
После выбора шрифта, подтвердили, что и для других окон?
0
ququ_smile
1 / 1 / 3
Регистрация: 28.01.2013
Сообщений: 164
19.07.2013, 19:23  [ТС] 13
Да, подтвердил
0
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.07.2013, 19:26 14
Это настроено?
0
Миниатюры
Русский текст в консоли  
ququ_smile
1 / 1 / 3
Регистрация: 28.01.2013
Сообщений: 164
19.07.2013, 19:33  [ТС] 15
Да, настроено
0
Миниатюры
Русский текст в консоли  
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.07.2013, 19:36 16
Настройки Editor смотрите.

Добавлено через 54 секунды
Цитата Сообщение от ququ_smile Посмотреть сообщение
У вас какая версия кодблокса?
10 и 12.
0
ValeryS
Модератор
7373 / 5574 / 707
Регистрация: 14.02.2011
Сообщений: 18,950
19.07.2013, 19:44 17
а сама то консоль по русски пишет?
попробуй открыть консоль и написать что нибудь по русски
может шрифты слетели а ты на прогу грешишь
0
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.07.2013, 19:50 18
Цитата Сообщение от ququ_smile Посмотреть сообщение
Да, настроено
Судя по скрину (8 пост), 866-ю выводит.
0
ququ_smile
1 / 1 / 3
Регистрация: 28.01.2013
Сообщений: 164
19.07.2013, 19:50  [ТС] 19
Вы это имели в виду?
0
Миниатюры
Русский текст в консоли  
ququ_smile
1 / 1 / 3
Регистрация: 28.01.2013
Сообщений: 164
19.07.2013, 19:52  [ТС] 20
Цитата Сообщение от alsav22 Посмотреть сообщение
Судя по скрину (8 пост), 866-ю выводит.
Эм... почему?
0
19.07.2013, 19:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.07.2013, 19:52

Xcode , С++ и русский язык: как вывести в файл русский текст без сбитой кодировки?
Как сделать так, чтобы после некоторых манипуляций в файл выводился русский...

Русский язык в консоли
Допустим вот код cout &lt;&lt; &quot;Помогите пожалуйста!&quot;; Пробовал и setlocale и...

Русский язык в консоли
Здравствуйте. Чего-то не разберусь с русским языком. ...


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

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

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