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

Указатель и снова про русский язык в консоли - C++

Восстановить пароль Регистрация
 
anton123123q
0 / 0 / 0
Регистрация: 19.04.2015
Сообщений: 31
16.11.2015, 22:00     Указатель и снова про русский язык в консоли #1
Здравствуйте.Указатель не возвращает русские буквы. Пишу что то на русском, возвращает набор символов, на анг все норм.
Как можно исправить.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstring>
#include <fstream>
#include <string>
using namespace std;
 string *EnterWord(string *word)
 {
     cin>> *word;
     return word;
    
 }
int main()
{
   setlocale(LC_ALL,"Russian");
   string word;
   cout << word;
   system("pause"); 
   return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2015, 22:00     Указатель и снова про русский язык в консоли
Посмотрите здесь:

Русский язык в консоли C++
C++ Русский язык в консоли
Русский язык в консоли C++
C++ Русский язык в консоли Qt 5.3
C++ Русский язык в консоли
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Shonrens
13 / 13 / 4
Регистрация: 06.06.2015
Сообщений: 98
17.11.2015, 00:52     Указатель и снова про русский язык в консоли #2
У меня линукс не смогу проверить но так должно работать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
using namespace std;
void  EnterWord(string &s)
 {
     getline(cin, s);
     cout << s << endl;
 }
int main()
{
   string word;
   EnterWord(word);
 
   return 0;
}
ALucky
16 / 16 / 7
Регистрация: 02.09.2015
Сообщений: 37
17.11.2015, 01:43     Указатель и снова про русский язык в консоли #3
Тут дело не в указателе. setlocale позволяет только ВЫВОДИТЬ русские символы. Я покопался на форуме (что следовало сделать Вам, вообще-то) и мне удалось обеспечить ВВОД русских символов, если вместо setlocale написать
C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Только ещё необходимо подключить windows.h.
На форуме так же нашёл ссылки на пару статей на тему кодировок. Сам ещё не читал, но должно быть полезно.
anton123123q
0 / 0 / 0
Регистрация: 19.04.2015
Сообщений: 31
17.11.2015, 15:40  [ТС]     Указатель и снова про русский язык в консоли #4
Я пробовал вводить
C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
, но тогда совсем все на непонятных символа и вводит и выводит, не читает русский язык.
Да и ещё заметил, что даже без указателя не читает.
ALucky
16 / 16 / 7
Регистрация: 02.09.2015
Сообщений: 37
18.11.2015, 02:05     Указатель и снова про русский язык в консоли #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
anton123123q,
Введите
C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
И #include<Windows.h> и ещё находясь в консоле, нажмите на левый верхний угол окошка, там в свойствах выберите вместо точечных шрифтов другой. Тогда всё идёт.

Добавлено через 1 час 51 минуту
anton123123q,
Второй вариант, менее удобный, но не требующий изменять шрифт консоли (ну мало ли по какой-то причине этого сделать нельзя)
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <locale>
......
locale programLoc(".1251");
locale consoleLoc(".866");
 
//Каждый раз когда нужно вывести русские буквы, которые были написаны в программе
locale::global(programLoc);
//Вывод
 
//Каждый раз когда нужно вывести русские буквы, которые были написаны с консоли
locale::global(consoleLoc);
//Вывод
В общем, каждый раз когда нужно менять используемую страницу кодов, т.к. консоль использует одну страницу кодов, а программа другую.
Ну и вообще, можете сами почитать вот в этой статье. И ту статью, которая на пост ниже тоже.
Yandex
Объявления
18.11.2015, 02:05     Указатель и снова про русский язык в консоли
Ответ Создать тему
Опции темы

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