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

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

Восстановить пароль Регистрация
 
 
ambrosia
0 / 0 / 0
Регистрация: 04.07.2015
Сообщений: 14
04.07.2015, 11:28     Как заставить g++ корректно отображать русскую раскладку? #1
Такой метод, как
C++
1
#include <locale>
C++
1
setlocale(LC_ALL, "Russian");
не срабатывает. Заранее благодарен!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ViktorB
43 / 43 / 8
Регистрация: 06.10.2014
Сообщений: 125
04.07.2015, 11:43     Как заставить g++ корректно отображать русскую раскладку? #2
Добавлено через 12 секунд
Так Russian_Russia.1251, по моему, кириллица должна корректно отображаться.
Вообще этот вопрос здесь уже 100500 раз обсуждался. Поиск
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
04.07.2015, 11:44     Как заставить g++ корректно отображать русскую раскладку? #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() и т.д.
ViktorB
43 / 43 / 8
Регистрация: 06.10.2014
Сообщений: 125
04.07.2015, 11:49     Как заставить g++ корректно отображать русскую раскладку? #4
Русские шрифты в консоли - C++

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

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

lss, а вот где эту строчку прописывать в QtCreator?
DrOffset
6416 / 3790 / 876
Регистрация: 30.01.2014
Сообщений: 6,575
04.07.2015, 19:13     Как заставить g++ корректно отображать русскую раскладку? #12
Цитата Сообщение от gru74ik Посмотреть сообщение
QtCreator?
В pro-файл.
QMAKE_CXXFLAGS += -finput-charset=CP1251 -fexec-charset=CP866
gru74ik
Модератор
 Аватар для gru74ik
2999 / 1312 / 164
Регистрация: 20.02.2013
Сообщений: 3,742
Записей в блоге: 15
04.07.2015, 20:17     Как заставить g++ корректно отображать русскую раскладку? #13
DrOffset, просто открыть pro-файл и добавить туда эту строку? Почему-то не сработало ((( Даже компилироваться не захотел. Ругается на строки с русскими буквами:
ошибка: converting to execution character set: Illegal byte sequence
DrOffset
6416 / 3790 / 876
Регистрация: 30.01.2014
Сообщений: 6,575
04.07.2015, 20:55     Как заставить g++ корректно отображать русскую раскладку? #14
Цитата Сообщение от gru74ik Посмотреть сообщение
ошибка: converting to execution character set: Illegal byte sequence
Проверь, что все символы этой строки набраны в английской раскладке.
gru74ik
Модератор
 Аватар для gru74ik
2999 / 1312 / 164
Регистрация: 20.02.2013
Сообщений: 3,742
Записей в блоге: 15
04.07.2015, 22:36     Как заставить g++ корректно отображать русскую раскладку? #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
Max Dark
В поиске работы
 Аватар для Max Dark
1546 / 1399 / 501
Регистрация: 09.10.2013
Сообщений: 3,185
Записей в блоге: 8
Завершенные тесты: 2
04.07.2015, 22:42     Как заставить g++ корректно отображать русскую раскладку? #16
gru74ik, уберите -finput-charset=CP1251 либо сохраните файл в кодировке windows-1251
gru74ik
Модератор
 Аватар для gru74ik
2999 / 1312 / 164
Регистрация: 20.02.2013
Сообщений: 3,742
Записей в блоге: 15
04.07.2015, 22:44     Как заставить g++ корректно отображать русскую раскладку? #17
Cra3y, благодарю, помогло.
DrOffset
6416 / 3790 / 876
Регистрация: 30.01.2014
Сообщений: 6,575
04.07.2015, 22:55     Как заставить g++ корректно отображать русскую раскладку? #18
Цитата Сообщение от gru74ik Посмотреть сообщение
Здрасьте, тётя Настя!
Привет, дядь Егор.
Я думал он ругается на pro-файл, а не на cpp
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
05.07.2015, 04:25     Как заставить g++ корректно отображать русскую раскладку? #19
Цитата Сообщение от ambrosia Посмотреть сообщение
Такой метод, какКод C++Выделить код1
#include <locale> Код C++Выделить код1
setlocale(LC_ALL, "Russian"); не срабатывает. Заранее благодарен!
Компилятор? Ввоll?вывоl?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2015, 12:19     Как заставить g++ корректно отображать русскую раскладку?
Еще ссылки по теме:

Реакция на раскладку C++
Как корректно обработать конец файла? C++
C++ Как компактно отображать и хранить большие числа?

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

Или воспользуйтесь поиском по форуму:
gru74ik
Модератор
 Аватар для gru74ik
2999 / 1312 / 164
Регистрация: 20.02.2013
Сообщений: 3,742
Записей в блоге: 15
05.07.2015, 12:19     Как заставить g++ корректно отображать русскую раскладку? #20
Цитата Сообщение от DrOffset Посмотреть сообщение
Привет, дядь Егор.
Прошу прощения, вырвалось )))) Сестрёнкина прибаутка, как-то само собой прилипло
Yandex
Объявления
05.07.2015, 12:19     Как заставить g++ корректно отображать русскую раскладку?
Ответ Создать тему
Опции темы

Текущее время: 04:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru