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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
#1

Ввод кириллицы в С++ - C++

15.08.2013, 17:42. Просмотров 1508. Ответов 28
Метки нет (Все метки)

При вводе значения переменной типа string или char кириллицей всегда выдает кракозябры.
setlocale помогает только для вывода (cout,printf работают безотказно).
Ничего не нашел полезного в гугле, везде либо предлагают изменить раскладку на досовскую 866 (работает до первого сохранения .срр файла), либо какие то сложные и непонятные функции. Как лечить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
16.08.2013, 09:15     Ввод кириллицы в С++ #21
Среда программирования? Какая кодировка в редакторе и консоле?
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
16.08.2013, 12:48  [ТС]     Ввод кириллицы в С++ #22
Цитата Сообщение от vua72 Посмотреть сообщение
Среда программирования? Какая кодировка в редакторе и консоле?
Цитата Сообщение от Dragokas Посмотреть сообщение
CHELOVEKPAUK, а в стандартных диалогах Windows с русским текстом проблем нет?
Цитата Сообщение от alsav22 Посмотреть сообщение
CHELOVEKPAUK, среда какая, ОС какая? Как настройки шрифта в консоли делаете? Как .exe запускаете? Скрин покажите с выводом этого кода и что вводите.
Держите скрин
Миниатюры
Ввод кириллицы в С++  
Hugra
47 / 47 / 1
Регистрация: 18.07.2013
Сообщений: 138
Записей в блоге: 1
16.08.2013, 12:53     Ввод кириллицы в С++ #23
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
Держите скрин
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>
 
#define rus SetConsoleCP(1251);SetConsoleOutputCP(1251);
 
using std::cout; using std::cin; using std::endl;
using std::string;
 
int main()
{
    rus;
    string text;
    cout << "Вывод данных через cout/printf работает хорошо\n";
    getline(cin,text);
    cout << "А вот вывод введенных данных не очень:\n";
    cout << text << "\n\n";
    system("PAUSE");
    return 0;
}
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
16.08.2013, 12:55     Ввод кириллицы в С++ #24
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
Держите скрин
#include <Windows.h>

SetConsoleCP(1251);
SetConsoleOutputCP(1251);
alsav22
16.08.2013, 13:04
  #25

Не по теме:

CHELOVEKPAUK, вы посты, вообще, читаете? Уже столько раз было написано всё...

Tulosba
16.08.2013, 13:41
  #26

Не по теме:

alsav22, вот так и разбухают темы на ровном месте.

CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
16.08.2013, 13:49  [ТС]     Ввод кириллицы в С++ #27
Цитата Сообщение от Hugra Посмотреть сообщение
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>
 
#define rus SetConsoleCP(1251);SetConsoleOutputCP(1251);
 
using std::cout; using std::cin; using std::endl;
using std::string;
 
int main()
{
    rus;
    string text;
    cout << "Вывод данных через cout/printf работает хорошо\n";
    getline(cin,text);
    cout << "А вот вывод введенных данных не очень:\n";
    cout << text << "\n\n";
    system("PAUSE");
    return 0;
}
Спасибо, вот это помогло. А до этого почему то не получалось с setconsole без define.
alsav22
16.08.2013, 13:49
  #28

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение

Не по теме:

alsav22, вот так и разбухают темы на ровном месте.

Да, уж...

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2013, 14:09     Ввод кириллицы в С++
Еще ссылки по теме:

C++ Ввод/вывод кириллицы через консоль
C++ Некорректный вывод кириллицы
Ввод в строки и вывод в консоль кириллицы C++
Что-то с поддержкой кириллицы C++
Считывание кириллицы C++

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4391 / 3234 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
16.08.2013, 14:09     Ввод кириллицы в С++ #29
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
А до этого почему то не получалось с setconsole без define.
Если убрать строку 5, а вместо 12ой написать:
C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
результат будет тот же. И дефайн тут не причем.
Для решения проблемы достаточно было прочитать сообщение #3.
Будьте внимательнее в будущем.
Yandex
Объявления
16.08.2013, 14:09     Ввод кириллицы в С++
Ответ Создать тему
Опции темы

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