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

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

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

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

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

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

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

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

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

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

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

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

28
zer0mail
2343 / 1973 / 193
Регистрация: 03.07.2012
Сообщений: 7,091
Записей в блоге: 1
15.08.2013, 23:58 #16
Есть, но по ссылке выше я показываю, что в нем "не так" и к каким проблемам это приводит. Не то, что проблемы неразрешимы, просто надо выбрать способ, а простого и универсального способа я не знаю. Если кто знает, поделитесь.
0
Nuclear_Razor
49 / 2 / 0
Регистрация: 22.07.2012
Сообщений: 104
Записей в блоге: 1
Завершенные тесты: 1
16.08.2013, 00:06 #17
zer0mail,

хм, наверное тут нужно что-то с буфером обмена делать.
Я имею ввиду, создать массив типа char, в который сначала будет забиваться введенна строка, а потом будет происходить вывод на экран. Просто нужно сделать отдельные массивы на каждый пункт ввода. Я не настаиваю на своем методе, просто пока это первое, что в голову пришло.
0
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
16.08.2013, 00:30 #18
Шрифт меняли в свойствах cmd окна? Компилятор у вас какой?
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.08.2013, 00:35 #19
CHELOVEKPAUK, среда какая, ОС какая? Как настройки шрифта в консоли делаете? Как .exe запускаете? Скрин покажите с выводом этого кода и что вводите.
0
Dragokas
Эксперт WindowsАвтор FAQ
15974 / 6791 / 818
Регистрация: 25.12.2011
Сообщений: 10,502
Записей в блоге: 16
16.08.2013, 01:42 #20
CHELOVEKPAUK, а в стандартных диалогах Windows с русским текстом проблем нет?
0
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
16.08.2013, 09:15 #21
Среда программирования? Какая кодировка в редакторе и консоле?
0
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
16.08.2013, 12:48  [ТС] #22
Цитата Сообщение от vua72 Посмотреть сообщение
Среда программирования? Какая кодировка в редакторе и консоле?
Цитата Сообщение от Dragokas Посмотреть сообщение
CHELOVEKPAUK, а в стандартных диалогах Windows с русским текстом проблем нет?
Цитата Сообщение от alsav22 Посмотреть сообщение
CHELOVEKPAUK, среда какая, ОС какая? Как настройки шрифта в консоли делаете? Как .exe запускаете? Скрин покажите с выводом этого кода и что вводите.
Держите скрин
0
Миниатюры
Ввод кириллицы в С++  
Hugra
48 / 48 / 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;
}
1
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
16.08.2013, 12:55 #24
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
Держите скрин
#include <Windows.h>

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

Не по теме:

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

1
Tulosba
16.08.2013, 13:41
  #26

Не по теме:

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

0
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.
0
alsav22
16.08.2013, 13:49
  #28

Не по теме:

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

Не по теме:

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

Да, уж...

0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
16.08.2013, 14:09 #29
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
А до этого почему то не получалось с setconsole без define.
Если убрать строку 5, а вместо 12ой написать:
C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
результат будет тот же. И дефайн тут не причем.
Для решения проблемы достаточно было прочитать сообщение #3.
Будьте внимательнее в будущем.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2013, 14:09
Привет! Вот еще темы с ответами:

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

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

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

Некорректный вывод кириллицы - C++
при выводе текста на русском, выводит символы типа:&lt;,&gt;,смайлики и тому подобное. код: int main () { setlocale(LC_ALL, &quot;RUS&quot;); ...


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

Или воспользуйтесь поиском по форуму:
29
Yandex
Объявления
16.08.2013, 14:09
Ответ Создать тему
Опции темы

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