Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите пожалуйста с русскими словами в C++.

Ответить
Настройки темы
C/C++ - Помогите пожалуйста с русскими словами в C++.

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Drongo
Дата: 20-05-2010
Описание: Тег код - #
Здравствуйте! У меня компилятор Microsoft Visual C++. Проблема такая - пишу в условии, что, если я ввожу это слово, у меня на экране выводится цифра "1", если условие не выполнено, то "2". Но, если я вставляю русские буквы, (я могу только создать, чтобы русские буквы выводились, но не вводились), у меня он не принимает русские буквы, точнее условие не работает, а с английскими все в порядке. Вот код, что бы было понятнее:
Код: Выделить весь код
#include<iostream>
#include<string>
using namespace std;
main()
{
string q1;
wchar_t*rus[]={L"",L"",L""};
wcout.imbue(locale(".866"));
cin >> q1;
if (q1 == "вода") {
cout << "1";
} else {
cout << "2";
}
wcout << rus[1];
return 0;
}

Отправлено: 22:00, 19-05-2010

 

Аватара для EvgeniyQQQ

Пользователь


Сообщения: 133
Благодарности: 21

Профиль | Сайт | Отправить PM | Цитировать


dakishi, дело всё в том, что вы читаете символы из консоли, а там кодировка cp866. Это у вас не указано. Символы записанные в q1 так и останутся в этой кодировке (я так думаю) и сравнивать их нужно будет со строкой в той же кодировке cp866. Как вариант, можно пользоваться "юникодным" строковым типом.
Вот рабочий пример:
Код: Выделить весь код
void main()
{
	wstring q1;
	wcin.imbue(locale(".866"));
	wcin >> q1;
	if(q1 == L"вода")  cout << "1"; 
	else cout << "2";
}

-------
"Не соглашайся ни на что, кроме совершенства!" - Анонимный автор.
"Совершенство достигается только к моменту полного краха." - К.Н.Паркинсон.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:21, 20-05-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите пожалуйста с русскими словами в C++.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Помогите пожалуйста решить проблему со словами. dakishi Программирование и базы данных 17 19-05-2010 21:50
Помогите!!!Пожалуйста!!!! gajdamak Лечение систем от вредоносных программ 1 27-02-2009 16:50
Помогите пожалуйста! shat Сетевые технологии 2 23-04-2007 16:10
Утилиты - Рабочий стол как WEB страничка со словами про угрозу безопасности yurfed Защита компьютерных систем 8 17-12-2006 12:31
Помогите с русскими буквами в Akrobat'е Yewgeniy Хочу все знать 2 18-11-2006 19:11




 
Переход