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

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

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

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

18.01.2014, 20:13. Просмотров 2029. Ответов 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_CTYPE, "rus") C++
C++ Что значит setlocale(0,"");
Функция setlocale( LC_ALL,"Russian" ) и класс String C++
Почему когда в рабочую программу вставляю setlocale(LC_ALL, "Rus"); она перестает корректно работать C++
C++ Не работает "setlocale( LC_ALL,"Russian" )"
Чем можно заменить функцию setlocale(LC_ALL, "RUSSIAN")? C++
C++ С++ консольное приложение win32, матерится на первое "pow" после "if", а на "system" говорит что неопределён.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6226 / 3471 / 424
Регистрация: 29.11.2010
Сообщений: 9,178
18.01.2014, 20:16     setlocale( LC_ALL,"Russian" ); #2
C++
1
2
3
#include <windows.h>
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
alsav22
5410 / 4806 / 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
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6226 / 3471 / 424
Регистрация: 29.11.2010
Сообщений: 9,178
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++ В массиве структур студент с полями "ИМЯ" "ВОЗРАСТ" "УСПЕВАЕМОСТЬ" выполнить сортировку по успеваемости по возрастанию
C++ Не правильное значение при использовании {setlocale (LC_ALL, "Russian");
Чем отличается вызов функции setlocale(0, "") от setlocale(LC_ALL,"")? C++
C++ Неправильное отображение русского текста в консоли при использовании setlocale(LC_ALL, "Russian")

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

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

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