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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2010, 23:20   #1
Crudelis
Пользователь
 
Аватар для Crudelis
 
Регистрация: 05.04.2010
Сообщений: 56
Печаль не пойму что не так делаю

#include<iostream>
#include<windows.h>
using namespace std;
void main()
{

setlocale(LC_CTYPE,"Russian") ;
char str[50];
cout<<"Введите строку на русском: ";
gets(str);
CharToOemA(str,str);
puts(str);

}

Пытаюсь в строку записать русский текст с клавиатуры, выводит одни иероглифы, много читал про CharToOem, не получается у меня его нормально использовать, подскажите пожалуйста как в строку можно вводить русские буквы, что я не так делаю, или где ошибка.
Пробывал делать ещё одну строку bufer[50] и делать CharToOemA(buf,str) как пишут в примерах, не работает всё равно иероглифы. При использовании просто CharToOem пишет ошибку
сout<<"Изучаю программирование" точка с запятой

Последний раз редактировалось Crudelis; 22.04.2010 в 23:44.
Crudelis вне форума Ответить с цитированием
Старый 23.04.2010, 01:33   #2
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

Код:
#include<iostream>
 #include<windows.h>
using namespace std;
void main(){
  char str[50], ru[50];
	CharToOem("Введите строку на русском: ",ru);
	cout<<ru;
	gets(str);
	puts(str);
 system("pause");
}
Skype: CODERua

Последний раз редактировалось [CODER]; 23.04.2010 в 01:38.
[CODER] вне форума Ответить с цитированием
Старый 23.04.2010, 01:51   #3
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Код:
#include<iostream>
#include<windows.h>
using namespace std;
void main()
{

	setlocale(LC_CTYPE,"Russian") ;
	char str[50];
	cout<<"Введите строку на русском: ";
	gets(str);
	OemToCharA(str,str);
	puts(str);

}
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 23.04.2010, 11:09   #4
Crudelis
Пользователь
 
Аватар для Crudelis
 
Регистрация: 05.04.2010
Сообщений: 56
По умолчанию

Цитата:
Сообщение от [CODER] Посмотреть сообщение
Код:
#include<iostream>
 #include<windows.h>
using namespace std;
void main(){
  char str[50], ru[50];
	CharToOem("Введите строку на русском: ",ru);
	cout<<ru;
	gets(str);
	puts(str);
 system("pause");
}
этот код выдает ошибку error C2664: 'CharToOemW' : cannot convert parameter 1 from 'const char [28]' to 'LPCWSTR'
Но несмотря на ошибку работает.
Цитата:
Goodwin98
Спасибо, оказывается нужно было наоборот конвертить с оем в чар) всё работает
сout<<"Изучаю программирование" точка с запятой
Crudelis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив что я делаю не так Fox-mts Общие вопросы C/C++ 3 18.04.2011 19:17
Что не так не пойму out of range alco84 Microsoft Office Excel 5 24.01.2010 20:19
IBExpert, не могу понять что делаю не так! в чём проблема.... katia0017 SQL, базы данных 10 15.01.2010 18:33
Visual C++: Что не так делаю? N!ckeL Помощь студентам 8 19.05.2008 11:28
Не пойму чо так Cricket2007 Помощь студентам 5 15.05.2008 01:17