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

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

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

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

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

При вводе значения переменной типа string или char кириллицей всегда выдает кракозябры.
setlocale помогает только для вывода (cout,printf работают безотказно).
Ничего не нашел полезного в гугле, везде либо предлагают изменить раскладку на досовскую 866 (работает до первого сохранения .срр файла), либо какие то сложные и непонятные функции. Как лечить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.08.2013, 17:42     Ввод кириллицы в С++
Посмотрите здесь:

Ввод кириллицы в консоли - C++
Есть задание создать некоторую базу. Базу эту можно дописывать. Но возникает проблема ввода кириллицы с консоли. Пробовал это решить...

Ввод/вывод кириллицы - C++
Здравствуйте. Ситуация такая. Я ввожу/вывожу символьный массив подобным образом: char a; cin >> a; cout << a; С латиницей...

Организовать ввод кириллицы в массив - C++
#include "stdafx.h" #include <iostream> #include <stdio.h> #include <conio.h> #define sz2 20 int _tmain(int argc, _TCHAR*...

Ввод/вывод кириллицы через консоль - C++
Вот простейший пример ввода и вывода слова(символа) через консоль # include <iostream> # include <locale> using namespace std; ...

Ввод в строки и вывод в консоль кириллицы - C++
Есть программа для подсчета количества букв в введенной строке,но если вводить строку на Русском языке выводит непонятные символы,но если...

Сортировка кириллицы - C++
Может кто-то сталкивался? Код может быть и системозависмый, не критично. Неудачная попытка есть. Может кто покажет как перегрузить оператор...

Обработка кириллицы - C++
Всем доброго времени суток. Мне бы хотелось попросить помощи. Собственно, есть одна программа, которая подсчитывает встречаемость каждого...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
15.08.2013, 17:44     Ввод кириллицы в С++ #2
в списке важных тема висит же Русские шрифты в консоли
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
15.08.2013, 17:45     Ввод кириллицы в С++ #3
А так?
C++
1
2
3
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
setlocale(LC_ALL,"rus");
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.08.2013, 17:45     Ввод кириллицы в С++ #4
Странное поведение смены кодировки
reisal78
647 / 560 / 132
Регистрация: 28.04.2013
Сообщений: 1,599
15.08.2013, 17:46     Ввод кириллицы в С++ #5
Для Windows:

C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Необходимо:

C++
1
#include <windows.h>
Поидее так
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.08.2013, 17:46     Ввод кириллицы в С++ #6
Цитата Сообщение от ViktorKozlov Посмотреть сообщение
А так?
А про Lucida Console где?
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
15.08.2013, 17:56  [ТС]     Ввод кириллицы в С++ #7
Цитата Сообщение от reisal78 Посмотреть сообщение
Для Windows:

C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Необходимо:

C++
1
#include <windows.h>
Поидее так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <windows.h>
 
using std::cout; using std::cin; using std::endl;
using std::string;
 
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 
int main()
{   
    setlocale(0,"russian");
    string name, food;
    cout << "Введите ваше имя: ";
    getline(cin,name);
    cout << "Введите ваше любимое блюдо: ";
    getline(cin,food);
    cout << "Мы приготовили для вас, уважаемый " << name;
    cout << ", вкуснейшее блюдо - " << food <<". Рады стараться!";
    cin >> food;
}
Не работает
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
15.08.2013, 18:00     Ввод кириллицы в С++ #8
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
Не работает
Не помешало бы знать, что 8-9 строки не вызывают функции.
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
15.08.2013, 18:03  [ТС]     Ввод кириллицы в С++ #9
Цитата Сообщение от Tulosba Посмотреть сообщение
Не помешало бы знать, что 8-9 строки не вызывают функции.
Спасибо за информацию, но и внутри функции майн не работает
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.08.2013, 18:06     Ввод кириллицы в С++ #10
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
Не работает
Цитата Сообщение от alsav22 Посмотреть сообщение
А про Lucida Console где?
Странное поведение смены кодировки

Добавлено через 57 секунд
Установка шрифта Lucida Console
reisal78
647 / 560 / 132
Регистрация: 28.04.2013
Сообщений: 1,599
15.08.2013, 19:39     Ввод кириллицы в С++ #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <string>
#include <windows.h>
 
using std::cout; using std::cin; using std::endl;
using std::string;
 
 
 
int main()
{setlocale(LC_ALL,"");
 
 
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    string name, food;
    cout << "Введите ваше имя: ";
    getline(cin,name);
    cout << "Введите ваше любимое блюдо: ";
    getline(cin,food);
    cout << "Мы приготовили для вас, уважаемый " << name;
    cout << ", вкуснейшее блюдо - " << food <<". Рады стараться!";
    cin >> food;
    return 0;
}
... и правой кнопкой по заголовку окна консоли Свойства -> Шрифты -> Lucida Console
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
15.08.2013, 21:28  [ТС]     Ввод кириллицы в С++ #12
reisal78, не помогает. Те же кракозябры.
zer0mail
2330 / 1956 / 192
Регистрация: 03.07.2012
Сообщений: 7,013
Записей в блоге: 1
15.08.2013, 22:51     Ввод кириллицы в С++ #13
Если интересно, можно почитать проблемы кодировок и ввод/вывод здесь: http://zelserg.livejournal.com/2117.html
Nuclear_Razor
49 / 2 / 0
Регистрация: 22.07.2012
Сообщений: 104
Записей в блоге: 1
15.08.2013, 23:13     Ввод кириллицы в С++ #14
А это не поможет, используя wcout/wcin ?

C++
1
setlocale(LC_CTYPE,".866");
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2013, 23:45     Ввод кириллицы в С++
Еще ссылки по теме:

Вывод кириллицы - C++
каким компилятором лучше пользоваться.я пользуюсь dev c++, но он в консоле не отображает все что написаное в скобках(тольуо на англиском...

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

Перевод с кириллицы на русский - C++
Доброго времени суток! Кто-нибудь подскажет, что здесь не так? Цель задачи - переводить cout с кириллицы на русский язык. Использую MS...

Поиск кириллицы в строке. - C++
Добрый вечер, ув. товарищи-программисты). Столкнулся с проблемкой поиска и замены букв кириллицы в строке, введенной пользователем. Стоит...

Вывод кириллицы в консоль - C++
Привет, как изменить код что-бы выводилась русская &quot;б&quot; вместо иероглифов? SetConsoleCP(1251); SetConsoleOutputCP(1251); тоже не...


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

Или воспользуйтесь поиском по форуму:
Nuclear_Razor
49 / 2 / 0
Регистрация: 22.07.2012
Сообщений: 104
Записей в блоге: 1
15.08.2013, 23:45     Ввод кириллицы в С++ #15
Есть еще стандартный способ:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//ваши хэдэры
#include <iostream>
 
using namespace std:
 
int main()
{
   setlocale (LC_ALL, "rus");
 
   //вывод на экран
 
   return 0;
}
Yandex
Объявления
15.08.2013, 23:45     Ввод кириллицы в С++
Ответ Создать тему
Опции темы

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