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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
Styks
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 16
#1

Кодировки в С++ - C++

02.06.2011, 23:56. Просмотров 2090. Ответов 4
Метки нет (Все метки)

Подскажите... Пытаюсь разобраться с кодировками в С++ на простом примере...Как заставить С++ принимать русские слова и при вводе и при выводе?
Код
#include "stdafx.h"
#include <windows.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
///SetConsoleCP(1251);
 ////SetConsoleOutputCP(1251);///Работают, но лишь при смене шрифтом на Люсиду Консоль
setlocale( LC_ALL,"Russian" );
cout<<"Здравствуйте\n\n\n"<<setw(3);

char a[10];

cin>>a;
cout<<"Здравствуйте, "<<a<<", Доброго дня Вам"<<setw(3);

	  _getch();
	return 0;
}
СЭТЛОКЕЙЛ русифицирует только приветствие первое, а не переменную "а"...
Пробовал вставить
CharToOem((LPCWSTR)a,a);
в сочетании с сетлокейлом результата не дает, без него русифицирует исключительно переменную "а"...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2011, 23:56     Кодировки в С++
Посмотрите здесь:

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

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

Перевод кодировки - C++
Всем привет! Такая задача Имеем html-код Знаем кодировку (charset) Если кодировка, отличная от UTF-8 - нужно выполнить...

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Soroka_D
0 / 0 / 0
Регистрация: 03.05.2011
Сообщений: 10
03.06.2011, 00:16     Кодировки в С++ #2
не уверен, что есть способ без переключения шрифтов на Люсиду.
Можно так, но все равно надо переключать шрифт
C++
1
system ("chcp 1251");
Styks
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 16
03.06.2011, 00:20  [ТС]     Кодировки в С++ #3
Да без переключения еще пара способов работают. просто хочется сделать нечто что не потребует от пользователя загадочных для него действий типа переключения шрифтов
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
03.06.2011, 00:38     Кодировки в С++ #4
C++
1
2
3
4
setlocale( LC_ALL,"Russian" );
SetConsoleCP(1251);//временно меняем кодировку ввода
cin.getline(srcStr,255);//забираем строку в правильной кодировке
SetConsoleCP(866);//меняем кодировку ввода назад
попробуй так...так будет по идее правильно забираться рус текст и выводиться тоже,
но деготь в том что каждый раз при вводе строки придется шаманить со сменой кодировки
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2011, 00:53     Кодировки в С++
Еще ссылки по теме:

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

Utf-8. И снова кодировки - C++
Доброго времени суток. Подскажите как конвертировать всё введённое с клавиатуры в utf-8. Т.е. консоль запускается в какой-то стране Мира,...

Изменение кодировки текста - C++
Программа на Borland C++ читает FB2 файл, получает из него имя автора, название, серию и т.п. как провести конвертацию из разных...

Кодировки в консоли Windows - C++
Здравствуйте. Хотелось бы узнать, почему при запуске программы в консоли Windows, система отправляет массив argv в функцию main в...

Создание нормальной кодировки - C++
Сейчас изучаю тему строк и написал вот такую легкую программу #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; ...

Смена кодировки текста! - C++
опять хелп!! std::string query = &quot;netsh interface ip set addres name=\&quot;&quot; + interface_name + &quot;\&quot; static 192.168.2.2...


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

Или воспользуйтесь поиском по форуму:
Styks
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 16
03.06.2011, 00:53  [ТС]     Кодировки в С++ #5
Цитата Сообщение от m1Rr0r Посмотреть сообщение
C++
1
2
3
4
setlocale( LC_ALL,"Russian" );
SetConsoleCP(1251);//временно меняем кодировку ввода
cin.getline(srcStr,255);//забираем строку в правильной кодировке
SetConsoleCP(866);//меняем кодировку ввода назад
попробуй так...так будет по идее правильно забираться рус текст и выводиться тоже,
но деготь в том что каждый раз при вводе строки придется шаманить со сменой кодировки
А что значит
cin.getline(srcStr,255)....?
всмысле в какую переменную то мы записываем результат?..мне нужно в char a, к примеру
переписал как cin.getline(а,255), не работает, квакозябра все равно
Yandex
Объявления
03.06.2011, 00:53     Кодировки в С++
Ответ Создать тему
Опции темы

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