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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
Spirit370
1 / 1 / 2
Регистрация: 08.08.2013
Сообщений: 86
#1

setlocale( LC_ALL,"Russian" ); - C++

18.01.2014, 20:13. Просмотров 2328. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
using namespace ::std;
void main () {
    setlocale( LC_ALL,"Russian" );
    string a;
    cout << "Привет мир\n";
    cin >> a;
    cout << a;
    system("PAUSE");
 
}
setlocale( LC_ALL,"Russian" ); не помогает!
Без проблем выводит русские буквы "Привет мир".
Но когда я ввожу в переменную "а" русское слово, например "морковь" , и вывожу эту переменную, то вместо адекватного слова , выводит непонятные символы: ?RaЭRym!!!
Что делать???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2014, 20:13     setlocale( LC_ALL,"Russian" );
Посмотрите здесь:

Не работает setlocale(LC_ALL,"Russian") или Говорим по русски - C++
оператор setlocale(LC_ALL,&quot;Russian&quot;); при проверке одной консольной программы сpp в 3 оболочках C++Builder, CodeBlocks, MS VisualStudio...

Чем можно заменить функцию setlocale(LC_ALL, "RUSSIAN")? - C++
напишите пожалуйста пример!!

Не правильное значение при использовании {setlocale (LC_ALL, "Russian"); - C++
Почему после подключения команды #include &lt;locale.h&gt; ... setlocale (LC_ALL, &quot;Russian&quot;); программа начинает выдавать не правильный результат...

Функция setlocale( LC_ALL,"Russian" ) и класс String - C++
У меня есть класс и головная функция этого класса. Переменные типа стринг я могу водить в консоли, ну как только я подключаю функцию...

Неправильное отображение русского текста в консоли при использовании setlocale(LC_ALL, "Russian") - C++
Ребят, такая ситуация, прописал setlocale(LC_ALL, &quot;Russian&quot;);но в консоли вместо текста на русском-набор букв, в чем может быть...

Не работает "setlocale( LC_ALL,"Russian" )" - C++
В одной программе setlocale( LC_ALL,&quot;Russian&quot; ) работает, а в другой, ничем не отличающейся от первой, нет. В чем дело?

Чем отличается вызов функции setlocale(0, "") от setlocale(LC_ALL,"")? - C++
Например printf(setlocale(0, &quot;&quot;)); cout &lt;&lt; endl; printf(setlocale(LC_ALL, &quot;&quot;)); выдают одинаковый результат (ну, на моей...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
7162 / 4328 / 632
Регистрация: 29.11.2010
Сообщений: 11,750
18.01.2014, 20:16     setlocale( LC_ALL,"Russian" ); #2
C++
1
2
3
#include <windows.h>
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.01.2014, 21:09     setlocale( LC_ALL,"Russian" ); #3
Цитата Сообщение от MrGluck Посмотреть сообщение
C++
1
2
3
#include <windows.h>
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
И в свойствах консоли выбрать шрифт: Lucida Console Установка шрифта Lucida Console
Spirit370
1 / 1 / 2
Регистрация: 08.08.2013
Сообщений: 86
15.02.2014, 23:31  [ТС]     setlocale( LC_ALL,"Russian" ); #4
В визуал-студио декстор консоли , когда я нажимаю правой кнопкой мыши по ней, никакого меню нет.
Ничего не помогает!
Задолбали проблемы с русскими строками!

Добавлено через 11 минут
Хуух, разобрался. Спасибо. Нет что бы придумать единую кодировку
zhibirc
648 / 233 / 29
Регистрация: 18.02.2013
Сообщений: 784
15.02.2014, 23:46     setlocale( LC_ALL,"Russian" ); #5
Цитата Сообщение от Spirit370 Посмотреть сообщение
Нет что бы придумать единую кодировку
Да вот кажется придумали - Unicode. Но она вроде бы не работает в консоли (ошибаюсь?). Поэтому используется специальное указание локального контекста.
MrGluck
Модератор
Эксперт CЭксперт С++
7162 / 4328 / 632
Регистрация: 29.11.2010
Сообщений: 11,750
16.02.2014, 02:18     setlocale( LC_ALL,"Russian" ); #6
Цитата Сообщение от !i Посмотреть сообщение
Но она вроде бы не работает в консоли (ошибаюсь?)
В консоли нет, в терминале(линукс) да.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2014, 10:46     setlocale( LC_ALL,"Russian" );
Еще ссылки по теме:

Почему когда в рабочую программу вставляю setlocale(LC_ALL, "Rus"); она перестает корректно работать - C++
Программа сначала считывает данные с файла, потом сортирует их и сохраняет. Мне нужно было сделать меню на русском, но после добавления...

Кодировки - setlocale (LC_CTYPE, "rus") - C++
Проблемы с кодировками - setlocale (LC_CTYPE, &quot;rus&quot;) Банальщина, но решить просто не могу.. В общем при использовании русских шрифтов,...

Что значит setlocale(0,""); - C++
#include &lt;iostream&gt; using namespace std; int main() { setlocale(0,&quot;&quot;); int ** A, n; cout &lt;&lt;...

Преобразовать строку, заменяя каждое слово "this" словом "that". - C++
подскажите в чем ошибка задание:Преобразовать строку, заменяя каждое слово &quot;this&quot; словом &quot;that&quot;. #include &lt;iostream&gt; #include...

Каждую последовательность символов"АBC" заменить на"ALPHABET" - C++
ввести строку.Создать другую строку из символов введенной, где каждую последовательность символов&quot;АBC&quot; заменить на&quot;ALPHABET&quot; пример...


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

Или воспользуйтесь поиском по форуму:
korvin_
1711 / 1249 / 191
Регистрация: 28.04.2012
Сообщений: 4,522
16.02.2014, 10:46     setlocale( LC_ALL,"Russian" ); #7
Цитата Сообщение от !i Посмотреть сообщение
Но она вроде бы не работает в консоли (ошибаюсь?)
chcp 65001, емнип.
Yandex
Объявления
16.02.2014, 10:46     setlocale( LC_ALL,"Russian" );
Ответ Создать тему
Опции темы

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