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

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

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

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

21.06.2015, 20:10. Просмотров 633. Ответов 10
Метки нет (Все метки)

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

Кириллица в консоли - C++
Пишу простенькую программу: #include <iostream> using namespace std; int main() { cout << "Это моя первая C++ программа."; ...

Кириллица в консоли - C++
Здравствуйте. Произошла вот такая проблема. Надеюсь, поможете. Написал легкую программу на C++, написал редактором Dev-C++ и...

Кириллица в консоли - C++
#include "stdafx.h" #include <iostream.h> #include "seria.h" #include<windows.h> char bufRus; char* Rus(const char*...

Не отображается кириллица в консоли - C++
Что делать?

Условный оператор, кириллица в консоли - C++
Ниже представлен код с условным оператором if. Ввожу Привет мир! но, нечего не происходит, почему? Заранее спасибо! #include...

Подсчитать количество вхождений буквы (кириллица) в строку (кириллица) - C++
Суть такая: по требованию программы ввести строку символов (обыкновенный текст, кириллица(!!!)) и посчитать количество вхождений, если...

10
zss
Модератор
Эксперт С++
6407 / 5973 / 1946
Регистрация: 18.12.2011
Сообщений: 15,405
Завершенные тесты: 1
21.06.2015, 20:19 #2
Поскольку Вы запускаете консольное приложение, то ознакомьтесь с
Русские шрифты в консоли
0
Raven1290
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 15
21.06.2015, 20:29  [ТС] #3
К сожалению я пробовал все и setlocae и SetConsoleCP...
0
lss
921 / 850 / 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() и т.д.
0
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
22.06.2015, 00:19 #5
Цитата Сообщение от Raven1290 Посмотреть сообщение
SetConsoleCP
попробуйте в свойствах консоли установить шрифт lucida console
0
lss
921 / 850 / 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
0
Миниатюры
Кириллица в консоли  
lss
921 / 850 / 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;
}
Для этого способа, настройка шрифта не нужна.
0
Миниатюры
Кириллица в консоли  
DrOffset
7324 / 4424 / 1001
Регистрация: 30.01.2014
Сообщений: 7,260
22.06.2015, 01:10 #8
Самый правильный способ, хоть и не самый простой, - пользоваться юникодной консолью и юникодным i\o соответственно. Все эти приседания с setlocale и ConsoleCP закончатся, как только понадобиться работать с больше чем двумя языками сразу.
0
lss
921 / 850 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
22.06.2015, 01:23 #9
Цитата Сообщение от DrOffset Посмотреть сообщение
Все эти приседания с setlocale и ConsoleCP закончатся, как только понадобиться работать с больше чем двумя языками сразу.
Не будем отрываться от реальности, ТС с двумя не может разобраться.
0
DrOffset
7324 / 4424 / 1001
Регистрация: 30.01.2014
Сообщений: 7,260
22.06.2015, 02:26 #10
Цитата Сообщение от lss Посмотреть сообщение
ТС с двумя не может разобраться
Для ТСа уже достаточно было других ответов. И целой прикрепленной темы.
Я просто ни в одной подобной теме не видел упоминания юникодного io. Его игнорируют, как будто его нет (или может не знают). Поэтому я и написал пост выше, чтобы хоть у тех, кто будет читать эту тему позже, закралось подозрение, что все эти пляски вокруг setlocale не единственный способ локализовать приложение.
0
lss
921 / 850 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
22.06.2015, 02:34 #11
Цитата Сообщение от DrOffset Посмотреть сообщение
Я просто ни в одной подобной теме не видел упоминания юникодного io.
В конце прикреплённой темы есть про юникод:
Русские шрифты в консоли
Русские шрифты в консоли
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2015, 02:34
Привет! Вот еще темы с ответами:

Клавиши F1-F12 в консоли, и работа с мышкой в консоли - C++
Я искал на сайте, но не нашел упоминания о том как обрабатывать и или узнавать где находится курсор мышки (и еще мне надо бы узнать нажатие...

считывание с консоли ( не с клавы, а именно с консоли) - C++
нужно написать функцию которая возвращает string в котором написано 500 символов которые были выведены в консоли от начала. среда :...

Кириллица - C++
Добрый день! Что сделать, что б кириллицу можно было вводить?

Кириллица - C++
Доброго времени суток! Заранее извиняюсь за весьма глупый вопрос, но все же string name; int main() { setlocale...


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

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
22.06.2015, 02:34
Ответ Создать тему
Опции темы

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