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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2009, 19:58   #1
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
По умолчанию Русский язык не работает

Здравсвуйте!Случилась такая проблемма, перестал юзаться русский язык, создаю проект на студии Эмпти прожект, элементарный, но рус.язык не срабатывает. Не скажите, в чём может быть ошибка.

Вот элементарный код, но он чего-то не пашет.
Код:
#include <iostream>
#include <windows>
using namespace std;

 int main()
{
	
	char s[100];
	CharToOem("Привет",s);
	cout<<s;
}
Golovastik вне форума Ответить с цитированием
Старый 15.07.2009, 20:01   #2
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Код:
std::locale::global(std::locale("Russian"));
добавь и не мучайся..

ЗЫ
Код:
#include <windows.h>
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....

Последний раз редактировалось ISergeyN; 15.07.2009 в 20:03. Причина: ....
ISergeyN вне форума Ответить с цитированием
Старый 15.07.2009, 20:05   #3
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Про return 0; забыли
profi вне форума Ответить с цитированием
Старый 15.07.2009, 20:05   #4
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
По умолчанию

Но так, тоже не работает.
Код:
#include <iostream.h>
#include <windows.h>
using namespace std;

 int main()
{
std::locale::global(std::locale("Russian"));	
	
	cout<<"Привет";
}
И вот так, не работает:

Код:

#include <iostream.h>
#include <windows.h>
using namespace std;

 int main()
{	
	char s[100];
	CharToOem("Привет",s);
	cout<<s;
	return 0;
}
Golovastik вне форума Ответить с цитированием
Старый 15.07.2009, 20:07   #5
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

так нужно.
Код:
#include <iostream>
using namespace std;

int main()
{
	std::locale::global(std::locale("Russian"));	
	cout<<"Привет\n";
	return 0;
}
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....

Последний раз редактировалось ISergeyN; 15.07.2009 в 20:07. Причина: ...
ISergeyN вне форума Ответить с цитированием
Старый 15.07.2009, 20:08   #6
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
По умолчанию

Спасибо,а можно ли как-то с CharToOem сделать, потому что я привык к нему.
А std::locale::global(std::locale("Ru ssian")); плохо запоминается.
Golovastik вне форума Ответить с цитированием
Старый 15.07.2009, 20:15   #7
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Цитата:
Спасибо,а можно ли как-то с CharToOem сделать, потому что я привык к нему.
можно но не нужно, так как функция CharToOem и библиотека windows.h стандартом и близко не поддерживается...(под линухом работать не будет).
Код:
#include <iostream>
#include <Windows.h>
using namespace std;

int main()
{
	//std::locale::global(std::locale("Russian"));	
	cout<<"Привет\n";

	char s[10];
	CharToOemA("Привет\n",s);
	//CharToOem("Привет\n",s);
	cout << s;
	return 0;
}
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 15.07.2009, 20:19   #8
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
По умолчанию

Спасибо,оказывается нужно было не CharToOem, а нужно было CharToOemA
Golovastik вне форума Ответить с цитированием
Старый 15.07.2009, 23:03   #9
paladinn
Пользователь
 
Регистрация: 19.12.2008
Сообщений: 26
По умолчанию

если прям в начале using namespace std пишешь то вот так можешь делать setlocale(0,"Russian");
paladinn вне форума Ответить с цитированием
Старый 16.07.2009, 03:27   #10
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Цитата:
Сообщение от paladinn Посмотреть сообщение
если прям в начале using namespace std пишешь то вот так можешь делать setlocale(0,"Russian");
Вопрос зачем?
Код:
#include <iostream>
int main()
{
	setlocale(0,"Rus");
	std::cout << "Я не знаю С++\n";
	return 0;
}
Работает..
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Русский язык на Pascal-e madmot Помощь студентам 5 21.12.2009 18:10
Русский язык Sanek_ntsk Общие вопросы C/C++ 9 06.03.2008 16:50
Русский язык Elefanter Свободное общение 14 22.02.2008 16:23
Русский язык [Smarik] Паскаль, Turbo Pascal, PascalABC.NET 7 01.02.2008 22:58
РУССКИЙ ЯЗЫК vicdon Паскаль, Turbo Pascal, PascalABC.NET 3 19.11.2007 14:34