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

Кириллица в консоли - C++

Восстановить пароль Регистрация
 
Raven1290
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 15
21.06.2015, 20:10     Кириллица в консоли #1
Знаю что вопрос уже не раз задавали, но там люди программировали в какой-либо из IDE.
Я же программирую на Windows в MinGW(эмулятор g++, то бишь консольный компилятор).
Так вот как там выводить русские буквы, текст?
Пробовал менять кодировку (C:\Windows\System32>chcp 866(и 1251 пробовал)). Так же сохранял файл в
UTF-8.... Результат очевиден.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2015, 20:10     Кириллица в консоли
Посмотрите здесь:

кириллица C++
C++ Клавиши F1-F12 в консоли, и работа с мышкой в консоли
C++ Кириллица в консоли
C++ Кириллица в консоли
C++ считывание с консоли ( не с клавы, а именно с консоли)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
21.06.2015, 20:19     Кириллица в консоли #2
Поскольку Вы запускаете консольное приложение, то ознакомьтесь с
Русские шрифты в консоли
Raven1290
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 15
21.06.2015, 20:29  [ТС]     Кириллица в консоли #3
К сожалению я пробовал все и setlocae и SetConsoleCP...
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
22.06.2015, 00:08     Кириллица в консоли #4
Цитата Сообщение от Raven1290 Посмотреть сообщение
К сожалению я пробовал все и setlocae и SetConsoleCP...
Не думаю, что ты какой-то особенный, у всех работает, а у тебя нет. setlocale(), в данном случае, для mingw не подходит, а с SetConsoleCP(1251) и т.д., должно работать. Нужный шрифт, в свойствах консоли, установил?

Добавлено через 3 минуты
Есть, для mingw, и такой способ: прописать компилятору
-finput-charset=CP1251 -fexec-charset=CP866
Кодировки будут правильно работать и без setlocale() и без SetConsoleCP() и т.д.
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
22.06.2015, 00:19     Кириллица в консоли #5
Цитата Сообщение от Raven1290 Посмотреть сообщение
SetConsoleCP
попробуйте в свойствах консоли установить шрифт lucida console
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
22.06.2015, 00:22     Кириллица в консоли #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cstdlib>
#include <windows.h>
using namespace std;
 
int main ()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    cout << "Русский вывод" << endl;
    char str[200];
    cin.getline(str, 200);
    cout << str << endl;
 
    system("pause");
    return 0;
}
Для этого способа, вот это обязательно:
Цитата Сообщение от lss Посмотреть сообщение
Нужный шрифт, в свойствах консоли, установил?
Цитата Сообщение от Хулиган Посмотреть сообщение
в свойствах консоли установить шрифт lucida console
Миниатюры
Кириллица в консоли  
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
22.06.2015, 00:29     Кириллица в консоли #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main ()
{
    cout << "Русский вывод" << endl;
    char str[200];
    cin.getline(str, 200);
    cout << str << endl;
 
    system("pause");
    return 0;
}
Для этого способа, настройка шрифта не нужна.
Миниатюры
Кириллица в консоли  
DrOffset
6420 / 3794 / 877
Регистрация: 30.01.2014
Сообщений: 6,584
22.06.2015, 01:10     Кириллица в консоли #8
Самый правильный способ, хоть и не самый простой, - пользоваться юникодной консолью и юникодным i\o соответственно. Все эти приседания с setlocale и ConsoleCP закончатся, как только понадобиться работать с больше чем двумя языками сразу.
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
22.06.2015, 01:23     Кириллица в консоли #9
Цитата Сообщение от DrOffset Посмотреть сообщение
Все эти приседания с setlocale и ConsoleCP закончатся, как только понадобиться работать с больше чем двумя языками сразу.
Не будем отрываться от реальности, ТС с двумя не может разобраться.
DrOffset
6420 / 3794 / 877
Регистрация: 30.01.2014
Сообщений: 6,584
22.06.2015, 02:26     Кириллица в консоли #10
Цитата Сообщение от lss Посмотреть сообщение
ТС с двумя не может разобраться
Для ТСа уже достаточно было других ответов. И целой прикрепленной темы.
Я просто ни в одной подобной теме не видел упоминания юникодного io. Его игнорируют, как будто его нет (или может не знают). Поэтому я и написал пост выше, чтобы хоть у тех, кто будет читать эту тему позже, закралось подозрение, что все эти пляски вокруг setlocale не единственный способ локализовать приложение.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2015, 02:34     Кириллица в консоли
Еще ссылки по теме:

Условный оператор, кириллица в консоли C++
Подсчитать количество вхождений буквы (кириллица) в строку (кириллица) C++
C++ Кириллица в консоли

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

Или воспользуйтесь поиском по форуму:
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
22.06.2015, 02:34     Кириллица в консоли #11
Цитата Сообщение от DrOffset Посмотреть сообщение
Я просто ни в одной подобной теме не видел упоминания юникодного io.
В конце прикреплённой темы есть про юникод:
Русские шрифты в консоли
Русские шрифты в консоли
Yandex
Объявления
22.06.2015, 02:34     Кириллица в консоли
Ответ Создать тему
Опции темы

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