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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
Spirit370
 Аватар для Spirit370
1 / 1 / 2
Регистрация: 08.08.2013
Сообщений: 86
18.01.2014, 20:13     setlocale( LC_ALL,"Russian" ); #1
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!!!
Что делать???
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
18.01.2014, 20:16     setlocale( LC_ALL,"Russian" ); #2
C++
1
2
3
#include <windows.h>
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
alsav22
5282 / 4801 / 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
 Аватар для Spirit370
1 / 1 / 2
Регистрация: 08.08.2013
Сообщений: 86
15.02.2014, 23:31  [ТС]     setlocale( LC_ALL,"Russian" ); #4
В визуал-студио декстор консоли , когда я нажимаю правой кнопкой мыши по ней, никакого меню нет.
Ничего не помогает!
Задолбали проблемы с русскими строками!

Добавлено через 11 минут
Хуух, разобрался. Спасибо. Нет что бы придумать единую кодировку
zhibirc
 Аватар для zhibirc
648 / 233 / 29
Регистрация: 18.02.2013
Сообщений: 784
15.02.2014, 23:46     setlocale( LC_ALL,"Russian" ); #5
Цитата Сообщение от Spirit370 Посмотреть сообщение
Нет что бы придумать единую кодировку
Да вот кажется придумали - Unicode. Но она вроде бы не работает в консоли (ошибаюсь?). Поэтому используется специальное указание локального контекста.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
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" );
Еще ссылки по теме:

C++ не работает setlocale(LC_ALL,"Russian") или Говорим по русски
C++ Не правильное значение при использовании {setlocale (LC_ALL, "Russian");
Чем отличается вызов функции setlocale(0, "") от setlocale(LC_ALL,"")? C++

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

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

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