Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
ambrosia
0 / 0 / 0
Регистрация: 04.07.2015
Сообщений: 14
#1

Как заставить g++ корректно отображать русскую раскладку? - C++

04.07.2015, 11:28. Просмотров 926. Ответов 21
Метки нет (Все метки)

Такой метод, как
C++
1
#include <locale>
C++
1
setlocale(LC_ALL, "Russian");
не срабатывает. Заранее благодарен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2015, 11:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как заставить g++ корректно отображать русскую раскладку? (C++):

Как в wxWidget корректно отображать кириллицу? - C++
Доброго времени суток. Хочу скомпилировать проект с использованием wxWidgets, всё хорошо но кириллицу она не отображает. Заранее поясню...

Как узнать раскладку клавикатуры в С билдере??? - C++
ПОМОГИТЕ ЛАМЕРУ!!! Короче надо узнать итендификатор раскладки клавы в программе. Делатся это должно вроде через GetKeyboardLayout(0). В...

Как компактно отображать и хранить большие числа? - C++
Есть ли какой-нибудь общеупотребимый формат? Типа 3*(2^123456-1) Сейчас развлекаюсь с числами Мерсенна. Для них просто придумал &quot;М23&quot;,...

Как отображать у double больше знаков после запятой? - C++
Что-то забыл как это сделать :(

Как как корректно закрыть другую программу из своей? - C++
Подскажите плиз как корректно закрыть другую программу из своей которая после посылки ей сообщения SendMessage(hWnd1,WM_CLOSE,0,0); ...

OpenBSD 5.8(XFCE). Как добавить русскую раскладку и переключение по ctrl+shift? - FreeBSD
Еле установил это чудо. В UNIX новичок. Сейчас чтобы задать этот вопрос пишу в гугле английскими буквами, а он мне выдает русские. Я их...

21
ViktorB
43 / 43 / 8
Регистрация: 06.10.2014
Сообщений: 125
04.07.2015, 11:43 #2
Добавлено через 12 секунд
Так Russian_Russia.1251, по моему, кириллица должна корректно отображаться.
Вообще этот вопрос здесь уже 100500 раз обсуждался. Поиск
0
lss
921 / 850 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
04.07.2015, 11:44 #3
C++
1
2
3
4
5
6
7
8
#include <windows.h>
 
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  ...
}
В свойствах консоли выбрать шрифт: Lucida Console.
Установка шрифта Lucida Console
Если используются функции cctype, то добавить setlocale(0, "") и приводить аргументы функций cctype к unsigned char

Если для mingw:
В Compiler settings, Other options, прописать:

-finput-charset=CP1251 -fexec-charset=CP866

Кодировки будут правильно работать и без setlocale() и без SetConsoleCP() и т.д.
0
ViktorB
43 / 43 / 8
Регистрация: 06.10.2014
Сообщений: 125
04.07.2015, 11:49 #4
Русские шрифты в консоли - C++

Добавлено через 4 минуты
Цитата Сообщение от lss Посмотреть сообщение
Если для mingw:
В Compiler settings, Other options, прописать:
-finput-charset=CP1251 -fexec-charset=CP866
Кодировки будут правильно работать и без setlocale() и без SetConsoleCP() и т.д.
Может я не допонимаю чего, но как это влияет на тот cmd.exe, что от Microsoft?
0
ambrosia
0 / 0 / 0
Регистрация: 04.07.2015
Сообщений: 14
04.07.2015, 12:03  [ТС] #5
ViktorB, а вот не отображается. И, ViktorB, не стоит лечить меня по поводу поиска.

lss, эм, я вот что-то не могу понять, где в стандартной форточной консоли настройки?
0
lss
921 / 850 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
04.07.2015, 12:18 #6
lss, эм, я вот что-то не могу понять, где в стандартной форточной консоли настройки?
Уточни, в чём пишишешь
0
ambrosia
0 / 0 / 0
Регистрация: 04.07.2015
Сообщений: 14
04.07.2015, 12:26  [ТС] #7
Цитата Сообщение от lss Посмотреть сообщение
Уточни, в чём пишишешь
Ну теперь знаешь.
0
lss
921 / 850 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
04.07.2015, 12:36 #8
Написано:
Цитата Сообщение от ViktorB Посмотреть сообщение
Если для mingw:
Можешь побыбирать варианты/
2
Вложения
Тип файла: rar Кодировки.rar (165.6 Кб, 5 просмотров)
ambrosia
0 / 0 / 0
Регистрация: 04.07.2015
Сообщений: 14
04.07.2015, 13:26  [ТС] #9
В общем, не знаю как, но сработал вот такой вариант
C++
1
2
setlocale(LC_CTYPE,".866");
wcout << L"Русский" << endl;
0
lss
921 / 850 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
04.07.2015, 14:31 #10
Цитата Сообщение от ViktorB Посмотреть сообщение
Может я не допонимаю чего, но как это влияет на тот cmd.exe, что от Microsoft?
Берём, пробуем, делаем выводы...
0
gru74ik
Модератор
Эксперт CЭксперт С++
4168 / 1816 / 198
Регистрация: 20.02.2013
Сообщений: 4,953
Записей в блоге: 21
04.07.2015, 16:23 #11
Цитата Сообщение от lss Посмотреть сообщение
Если для mingw:
В Compiler settings, Other options, прописать:
-finput-charset=CP1251 -fexec-charset=CP866
В Code::Blocks нашёл куда это прописывать. Работает. Благодарю.

lss, а вот где эту строчку прописывать в QtCreator?
0
DrOffset
7312 / 4412 / 999
Регистрация: 30.01.2014
Сообщений: 7,245
04.07.2015, 19:13 #12
Цитата Сообщение от gru74ik Посмотреть сообщение
QtCreator?
В pro-файл.
QMAKE_CXXFLAGS += -finput-charset=CP1251 -fexec-charset=CP866
1
gru74ik
Модератор
Эксперт CЭксперт С++
4168 / 1816 / 198
Регистрация: 20.02.2013
Сообщений: 4,953
Записей в блоге: 21
04.07.2015, 20:17 #13
DrOffset, просто открыть pro-файл и добавить туда эту строку? Почему-то не сработало ((( Даже компилироваться не захотел. Ругается на строки с русскими буквами:
ошибка: converting to execution character set: Illegal byte sequence
0
DrOffset
7312 / 4412 / 999
Регистрация: 30.01.2014
Сообщений: 7,245
04.07.2015, 20:55 #14
Цитата Сообщение от gru74ik Посмотреть сообщение
ошибка: converting to execution character set: Illegal byte sequence
Проверь, что все символы этой строки набраны в английской раскладке.
1
gru74ik
Модератор
Эксперт CЭксперт С++
4168 / 1816 / 198
Регистрация: 20.02.2013
Сообщений: 4,953
Записей в блоге: 21
04.07.2015, 22:36 #15
Цитата Сообщение от DrOffset Посмотреть сообщение
Проверь, что все символы этой строки набраны в английской раскладке.
Здрасьте, тётя Настя! А на кой мне тогда вся эта чихарда была нужна? Всё ведь и затевалось ради русских букв! Ругается на строку 7
D:\0_0\QtProjects\SimpleHelloWorld\main.cpp:7: ошибка: converting to execution character set: Illegal byte sequence
cout << "Привет, мир!" << endl;
^
в коде:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
using namespace std;
 
int main()
{
    cout << "Привет, мир!" << endl;
    return 0;
}
Так выглядит pro-файл:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
 
SOURCES += main.cpp
 
include(deployment.pri)
qtcAddDeployment()
 
QMAKE_CXXFLAGS += -finput-charset=CP1251 -fexec-charset=CP866
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2015, 22:36
Привет! Вот еще темы с ответами:

Как заставить телефон распознавать русскую речь? - Windows Phone
В общем долгое время пытаюсь приучить мобилу работать с голосом (ее преобразование в текст). Пытаюсь реализовать систему Windows (т.е....

Как корректно отображать русское меню в VB? - Visual Basic
Как корректно отображать русское меню? (Получаются какие-то иероглифы)

Как заставить IE правильно отображать блок ? - HTML, CSS
Проблема наверное смешная, однако не знаю как ее решить, может подскажет кто? В общем есть 3 дива, третий див обтекает втрой див и...

Как заставить отображать второй дисплей - Видеокарты
Имеется видеокарта MSI Radeon R7 260. У нее 4 выхода: DVI-I, DVI-D, HDMI, Display Port. К HDMI подключен телевизор. К DVI-I монитор,...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
04.07.2015, 22:36
Ответ Создать тему
Опции темы

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