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

Считывание текстового масива , русского - C++

Восстановить пароль Регистрация
 
Олексей
5 / 4 / 0
Регистрация: 05.04.2010
Сообщений: 248
15.03.2013, 01:05     Считывание текстового масива , русского #1
Возможно вопрос баян и отправьте меня куда-то смотреть ответ, но я не нашёл как сделать это, мне надо считать в массив текст введённый в консоли на русском языке. вот к примеру обрывок

C++
1
2
3
int main () {
    char mass[999];
    cin>>mass;
Добавлено через 1 час 45 минут
Ну т.е что бы у меня в массив записались именно русские символы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ReasonX7
 Аватар для ReasonX7
47 / 46 / 2
Регистрация: 11.12.2011
Сообщений: 146
15.03.2013, 01:21     Считывание текстового масива , русского #2
Здесь есть решение
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.03.2013, 01:38     Считывание текстового масива , русского #3
C++
1
2
3
4
5
6
7
8
#include <windows.h>
 
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  ...
}
В свойствах консоли выбрать шрифт: Lucida Console

Добавлено через 6 минут
Настройка шрифта: Англо русский переводчик
Олексей
5 / 4 / 0
Регистрация: 05.04.2010
Сообщений: 248
15.03.2013, 01:38  [ТС]     Считывание текстового масива , русского #4
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
#include <windows.h>
 
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  ...
}
В свойствах консоли выбрать шрифт: Lucida Console
Нет не всё так просто, оно выведет потом текст то на русском, но до этого элементам массива присвоит свои всякие символы кривые
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.03.2013, 01:42     Считывание текстового масива , русского #5
Пробовали?

Добавлено через 35 секунд
Вот это для ввода: SetConsoleCP(1251);
У меня, на ввод, такой способ нормально работает.

Добавлено через 2 минуты
Среда какая?
Олексей
5 / 4 / 0
Регистрация: 05.04.2010
Сообщений: 248
15.03.2013, 02:26  [ТС]     Считывание текстового масива , русского #6
Visual Studio, ну допустим я поменяю у себя шрифт в консоле , откомпилирую программу , если я её скину кому-то , у них на компьютере шрифт консоли сохранится?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
15.03.2013, 02:31     Считывание текстового масива , русского #7
Олексей, если они в свойствах консоли также поставят Lucida Console, то увидят то же, что и вы.

Не по теме:

Linux в помощь

Олексей
5 / 4 / 0
Регистрация: 05.04.2010
Сообщений: 248
15.03.2013, 02:32  [ТС]     Считывание текстового масива , русского #8
Ну тогда это не катит, это я и имел ввиду, она должна быть универсальна и красива, должен быть ещё способ
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.03.2013, 02:37     Считывание текстового масива , русского #9
Тема такая. По умолчанию в консоли Windows кодировка 866, а в системе 1251. Из за этого проблемы при вводе с клавиатуры русского текста и при выводе русского текста из программы в консоль. Тот способ, который я предложил, устаналивает для консоли кодировку 1251. Теперь вопрос, что будет у того, у кого кодировка 866? То же, что было и у вас, до установки кодировки 1251.
Олексей
5 / 4 / 0
Регистрация: 05.04.2010
Сообщений: 248
15.03.2013, 02:41  [ТС]     Считывание текстового масива , русского #10
Я понимаю, но тогда надо русифицировать другим способом, возможно как -то используя коды букв? т.е я себе поставлю кодировку 750 русского языка , пусть записывает туда всякие кракозяблики и что бы они соответствовали кодам символов русских, хотел по кодам клавиш но понял что текст я буду вставлять в консоль
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
15.03.2013, 02:43     Считывание текстового масива , русского #11
сейчас он (ТС) начнет рассказывать, про то, как было бы здорово брать значение с system("chcp") ...

Добавлено через 1 минуту
Олексей, русифицируйте Windows Абсолютно универсальных и достойных способов нет, есть лишь терпимые, самый нормальный вам уже предложили, все недовольства пишите в отчет к поставщикам ОС.
Олексей
5 / 4 / 0
Регистрация: 05.04.2010
Сообщений: 248
15.03.2013, 14:27  [ТС]     Считывание текстового масива , русского #12
Я читал что-то о setlocale оно не изменит ситуацию?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.03.2013, 14:41     Считывание текстового масива , русского #13
Цитата Сообщение от Олексей Посмотреть сообщение
Я читал что-то о setlocale оно не изменит ситуацию?
Нет. Только вывод.
Олексей
5 / 4 / 0
Регистрация: 05.04.2010
Сообщений: 248
15.03.2013, 14:52  [ТС]     Считывание текстового масива , русского #14
визуальный ввод, т.е он будет русский прост она экране, и в массив не запишет мне русскими?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.03.2013, 14:55     Считывание текстового масива , русского #15
Цитата Сообщение от Олексей Посмотреть сообщение
и в массив не запишет мне русскими?
Не запишет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2013, 14:56     Считывание текстового масива , русского
Еще ссылки по теме:

C++ Считывание из текстового файла
C++ Считывание информации с Текстового документа
Считывание текстового файла C++

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

Или воспользуйтесь поиском по форуму:
Олексей
5 / 4 / 0
Регистрация: 05.04.2010
Сообщений: 248
15.03.2013, 14:56  [ТС]     Считывание текстового масива , русского #16
Жаль, тогда всем спасибо, придётся юзать смену шрифта, лучше чем ничего
Yandex
Объявления
15.03.2013, 14:56     Считывание текстового масива , русского
Ответ Создать тему
Опции темы

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