С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 693
#1

Создание нормальной кодировки - C++

04.07.2011, 14:22. Просмотров 425. Ответов 4
Метки нет (Все метки)

Сейчас изучаю тему строк и написал вот такую легкую программу

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
using namespace std;
///////////////////////////////////////////////////////////
int main ( )
{setlocale(LC_ALL,"Rus");
  string s1;
  getline(cin,s1);
  int n=0;
 
  n = s1.find ( "б" );
  
  cout << "Буква б найдена: " << n << endl;
 
 
  cin.get();
  cin.get();
  return 0;
}

Но она наотрез у меня отказывается работать. Выводится значение не соответсвующее дествительности. Я долго думал почему так и догадался вывести
C++
1
s1
на экран

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
using namespace std;
///////////////////////////////////////////////////////////
int main ( )
{setlocale(LC_ALL,"Rus");
  string s1;
  getline(cin,s1);
  int n=0;
 
  n = s1.find ( "б" );
  cout<<s1;
  cout << "Буква б найдена: " << n << endl;
 
 
  cin.get();
  cin.get();
  return 0;
}
оказалось, что эта страка содержит кракозябли, то есть проблема в русской кодировке. Как мне это исправить ? Как сделать чтобы программа видела вводимые русские символы ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2011, 14:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание нормальной кодировки (C++):

Отображение символа в нормальной кодировки - C++
Есть строка из массива char'ов: char str. Необходимо отобразить n-ый элемент данной строки в консоли, но, так чтобы русские буквы...

В чём отличия кодировки ms dos от кодировки ms windows? - C++
Всем привет, подскажите в чём отличия кодировки ms dos от кодировки ms windows?

Кодировки (ошибки кодировки) в логировании - C++
Здравствуйте. Работаю с WINAPI и оттуда нормально приходят наименования на русском. Вот решил логирование организовать и на этом повалился...

Как CString преобразовать к нормальной строке? - C++
// ... CRecordset *m_rs; // ... LVITEM lvi; // ... СString s; m_rs-&gt;GetFieldValue(j, s); lvi.pszText = ?;Тип lvi.pszText -...

Кодировки - C++
Интересен вопрос с кодировками, хочеть до конца разобраться. Есть несколько вопросов, данные подразумевается будут храниться после...

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

4
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,262
Завершенные тесты: 2
04.07.2011, 15:14 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <windows.h>
#include <iostream>
#include <string>
using namespace std;
///////////////////////////////////////////////////////////
int main ( )
{setlocale(LC_ALL,"Rus");
  string s1;
  SetConsoleCP(1251);
  getline(cin,s1);
  SetConsoleCP(866);
  int n=0;
 
  n = s1.find ( "б" );
  cout<<s1;
  cout << "Буква б найдена: " << n << endl;
 
 
  cin.get();
  cin.get();
  return 0;
}
1
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 693
04.07.2011, 15:26  [ТС] #3
Спасибо огромное ! Вы не подскажите что это за конструкции ?
C++
1
2
SetConsoleCP(1251);
SetConsoleCP(866);
и что в них за значения ?
0
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,262
Завершенные тесты: 2
04.07.2011, 15:32 #4
кодировка ввода вывода )

Добавлено через 1 минуту
866 это дос, 1251 - вин, вроде так )
1
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 693
04.07.2011, 16:20  [ТС] #5
Спасибо. Тему можно закрыть.
0
04.07.2011, 16:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2011, 16:20
Привет! Вот еще темы с ответами:

Кодировки, языки - C++
Здравствуйте. Не могу разобраться с тем как работать с файлами и строками на разных языках. Русский получилось писать с помощью локали...

Преобразование кодировки - C++
Тема не создаётся Добавлено через 12 секунд Можно ли такое замутить чисто через STL без всяких сторонних утилит типа iconv ? P.S.:...

Нет кодировки?! - C++
в общем я немного изменил функцию со справки под свои нужды(функция была аналогом dir'a).. вот код: #include &lt;windows.h&gt; #include...

Ошибка кодировки? - C++
При присваивании русского слова к переменной input типа string - ошибка Но стоит поменять на английское слово - получается все верно. ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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