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

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

Войти
Регистрация
Восстановить пароль
 
didyoumean
1 / 1 / 0
Регистрация: 12.06.2013
Сообщений: 12
#1

Неверное считывание символов русского языка - C++

01.04.2014, 19:51. Просмотров 977. Ответов 3
Метки нет (Все метки)

Visual Studio 2013. При считывании русских символов всеми возможными средствами (cin, scanf, getch и др.) считывается неверный код, который должен быть, и с отрицательным знаком. Из всех этих средств правильно работает только cin.getline(), но эта функция работает со строками, а не с символами.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Rus");
    char c;
    cin >> c;
    printf("%d %d", c, 'П'); 
    cout << endl;
    system("pause");
    return 0;
}
При вводе "П" выдает "-113 -49". Как добиться корректного считывания русских символов? Т.е. чтобы константа 'П' равнялась считываемому символу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2014, 19:51     Неверное считывание символов русского языка
Посмотрите здесь:

Подключение русского языка - C++
Недавно нашла,как сделать так,чтобы на экране отображались на русском языке не только фразы из cout&lt;&lt;, но и которые вводятся с...

Ошибка с подключением русского языка - C++
А так же, почему то выделяет красным число &quot;pi&quot; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;windows.h&gt; char bufRus; char*...

Компилятор с поддержкой русского языка - C++
Использую MS Visual с++ 6.0, но он не поддерживает русского языка. Если в коде есть русские буквы - он заменяет их какими то непонятными...

Запрограммировать правило русского языка - C++
Правило написания букв И - Е в корнях с чередованием (-бер-, -бир(а)-, -дер-, -дир(а)- и т.д.). Например, собирать, соберет, сочетание.

Использование русского языка в DevC++ - C++
Пишу программу на С++ (недавно начал изучение). Весь код есть, компиляция проходит успешно, запускаю - вместо букв, &quot;каракули&quot;....

Ввод/вывод с использование русского языка - C++
Мне нужно ввести с клавиатуры строку на русском языке (например:&quot;Я живу в России&quot;) и вывести её также. Как это сделать? Я сколько не...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zer0mail
2330 / 1956 / 192
Регистрация: 03.07.2012
Сообщений: 7,013
Записей в блоге: 1
01.04.2014, 20:06     Неверное считывание символов русского языка #2
Можно тут глянуть Русские шрифты в консоли или тут http://zelserg.livejournal.com/2117.html
-=ЮрА=-
Заблокирован
Автор FAQ
01.04.2014, 20:08     Неверное считывание символов русского языка #3
didyoumean, используй широкие символы,
Цитата Сообщение от didyoumean Посмотреть сообщение
setlocale(LC_ALL, "Rus");
- это не панацея
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <clocale>
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE,".866");
    wchar_t symbol;
    wcin>>symbol;
    wcout<<symbol<<endl;
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2014, 20:15     Неверное считывание символов русского языка
Еще ссылки по теме:

Считывание текстового масива , русского - C++
Возможно вопрос баян и отправьте меня куда-то смотреть ответ, но я не нашёл как сделать это, мне надо считать в массив текст введённый в...

Поддержка русского языка в Embarcadero RAD Studio XE3 на Си++ - C++
Здравствуйте. Подскажите пожалуйста как включить полноценную поддержку русского языка в Embarcadero RAD Studio XE3? При вводе и выводе...

В консоли вместо русского языка выводятся вопросительные знаки - C++
Столкнулся с такой проблемой. В консоли вместо русского языка выводятся вопросительные знаки (???? ?? ??). setlocale(LC_ALL,...

Произвольное слово разбить для переноса по правилам русского языка - C++
Помогите пожалуйста написать программу: Произвольное слово разбить для переноса по правилам русского языка.

Вместо русского языка в DOS выходят непонятные знаки и слова - C++
Добрый день ! Помогите пожалуйста, не могу понять в чем дело. Я работаю в Microsoft Visual Studio 2012 Proffeional. Я только учусь,...

Произвольное слово разбить для переноса по правилам русского языка - C++
Помогите пожалуйста. Произвольное слово разбить для переноса по правилам русского языка. Ничего не приходит в голову.


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

Или воспользуйтесь поиском по форуму:
didyoumean
1 / 1 / 0
Регистрация: 12.06.2013
Сообщений: 12
01.04.2014, 20:15  [ТС]     Неверное считывание символов русского языка #4
Спасибо, я не использовал SetConsoleCP(1251), думал, что одной setlocale(LC_ALL, "Rus") хватит. Надо бы изучить данный вопрос
Yandex
Объявления
01.04.2014, 20:15     Неверное считывание символов русского языка
Ответ Создать тему
Опции темы

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