Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2011, 00:15   #1
Islam_2011
Новичок
Джуниор
 
Регистрация: 17.09.2011
Сообщений: 3
По умолчанию Куда деваются русские буквы?

Здравствуйте, уважаемые программисты. Я пользовался и пользуюсь Visual Studio 2008, 2010 русской и англиской языках, чтобы проверить исправляется ли ошибка, про которую хочу задать вам. У меня вот такая проблема, приведу вам два примера в надежде, что вы мне поможете с этой проблемой.
1) Пример:
Код:
#include <iostream>
#include <string>
using namespace std;
int main()
{
	string name;
	cout <<"Как тебя зовут?";
	cin >> name;
	cout << "Привет, " << name;
	cin.get();
             cin.get();
	return 0;
}

Вместо русского текста("Как тебя зовут?" и "Привет") выводится какая-то абра-кадабра, исключением является лишь name (написав хоть какое-либо имя на русском, именно оно, что самое интересное, отобразится). Все дело в том, как нам говорят, что командная строка по умолчанию не поддерживает русский язык, поэтому вместо русского текста("Как тебя зовут? и "Привет") выводится какая-то абра-кадабра .
Исправить это нам поможет, как мы знаем, еще одна строчка кода, которая настроит консоль на правильное отображение русских букв:
Code
setlocale( LC_ALL, "Russian" );

То есть вот так:
2) Пример:
Код:
#include <iostream>
#include <string>
using namespace std;
int main()
{
	setlocale(LC_ALL, "Russian");
	string name;
	cout <<"Как тебя зовут?";
	cin >> name;
	cout << "Привет, " << name;
	cin.get();
             cin.get();
	return 0;
}
Хорошо, вписали, но что случается с string name? Почему теперь у него проблемы? Теперь написав хоть какое-либо имя или слово на русском появляется "Привет, и абра-кадабра". Уважаемые знатоки программисты, помогите мне разрешить эту проблему. И прошу вас очень, не отвечайте мне так, как когда-то ответил мне один программист: "Это не так важно!", получалось это как будто он избегал ответа, потому что сам не знал ответа. Если это внутренняя ошибка Visual Studio 2008, 2010 версии любых продуктов (про ранних версии всех продуктов Visual Studio не осведомлен), то скажите просто это, я на этом успокоюсь и не буду ломать дров, а просто поругаю тех, кто не учел этого в этой среде VS. Скажите, отвечая прямо, это исправимо или нет? И если да, то как? Но не говорите, пожалуйста, важно ли это для меня или нет. С уважением, Ислам!

Последний раз редактировалось Stilet; 18.09.2011 в 11:22.
Islam_2011 вне форума Ответить с цитированием
Старый 18.09.2011, 01:13   #2
FullVenic
Пользователь
 
Регистрация: 19.07.2010
Сообщений: 59
По умолчанию

попробуй setlocale(LC_CTYPE,"Russian");
FullVenic вне форума Ответить с цитированием
Старый 18.09.2011, 10:20   #3
FelixXXI
Пользователь
 
Регистрация: 29.03.2010
Сообщений: 48
По умолчанию

Обсуждалось уже http://programmersforum.ru/showthread.php?t=162044
Мне помогает :
Код:
#include <windows.h>
 ...
 SetConsoleCP (1251);
 SetConsoleOutputCP (1251);
с последующей заменой шрифта на Lucida Console
FelixXXI вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Русские буквы morgan97 Паскаль, Turbo Pascal, PascalABC.NET 4 10.03.2011 10:15
только русские буквы Dgon777 Microsoft Office Access 6 11.11.2010 22:13
Русские буквы в консоли. Cpluser Общие вопросы C/C++ 5 07.10.2009 16:55
Подскажите, куда деваются переаменные? Visual C++ Sh2009 Помощь студентам 4 07.05.2009 00:34