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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 50, средняя оценка - 4.98
to
19 / 19 / 0
Регистрация: 28.10.2010
Сообщений: 296
#1

Преобразование типов wchar_t в char и обратно - C++

12.09.2012, 21:19. Просмотров 8154. Ответов 30
Метки нет (Все метки)

Добрый вечер уважаемые форумчане! Как можно перевести из wchar_t в char и обратно. Если можно с примерами. За ранее спасибо!!

Добавлено через 1 минуту
нашел такие функции
MultiByteToWideChar
WideCharToMultiByte
но не знаю как ними пользоваться
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2012, 21:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Преобразование типов wchar_t в char и обратно (C++):

Преобразование wchar_t в char - C++
Как преобразовать wchar_t в char ? Получаю wszName через MIB_IFTABLE.

Преобразование char* в const wchar_t * - C++
Есть кусок кода, при компиляции выскакивает ошибка о о неудачном преобразовании типов(вышеназванных) int i = 0; std::string line; ...

Преобразование const char >>wchar_t >>LPWSTR - C++
Здравствуйте. Хотел чтобы прога сама определяла нужный ком порт путём перебора. Путём сложения нескольких чаров получается 3-й чар, который...

Преобразование int char и обратно - C++
надо разложить число на два байта... unsigned char ghj; int fff = 11111; ghj = fff / 256; ghj = fff - (ghj * 256); //обратно ...

Продемонстровать неявное преобразование типов: из целого в вещественный и обратно - C++
Помогите решить задачи по С++, никак не могу, вся надежда только на вас. 1. Даны вещественные и целые числа. Наглядно продемонстрируйте...

Преобразование типов (long -> массив char) - C++
Здравствуйте! имеется функция void sendchar(unsigned char data);не могу ее использовать т.к. не знаю как преобразовать long в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
romex
44 / 44 / 4
Регистрация: 11.04.2010
Сообщений: 223
12.09.2012, 23:00 #2
Цитата Сообщение от to Посмотреть сообщение
нашел такие функции
MultiByteToWideChar
WideCharToMultiByte
самое оптимальное решение
но не знаю как ними пользоваться
Нарушение правил но все же:

http://msdn.microsoft.com
_stealth_
16 / 16 / 1
Регистрация: 07.06.2012
Сообщений: 100
12.09.2012, 23:04 #3
C++
1
2
std::string a;
std::wstring b;
там есть функции перевода (to_wchar вроде)
to
19 / 19 / 0
Регистрация: 28.10.2010
Сообщений: 296
13.09.2012, 02:36  [ТС] #4
romex, на msdn только на английском, хотелось бы что-то на русском

Добавлено через 2 минуты
Цитата Сообщение от _stealth_ Посмотреть сообщение
там есть функции перевода (to_wchar вроде)
не нашел такую функцию

Добавлено через 12 секунд
есть просто to_char
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.09.2012, 03:20 #5
Цитата Сообщение от to Посмотреть сообщение
Как можно перевести из wchar_t в char и обратно.
Что конкретно перевести?
to
19 / 19 / 0
Регистрация: 28.10.2010
Сообщений: 296
13.09.2012, 03:38  [ТС] #6
Цитата Сообщение от alsav22 Посмотреть сообщение
Что конкретно перевести?
переменную из wchar_t в char
И еще такой вопрос можно ли обращаться к массиву wchar_t так же как к масиву char
C++
1
2
 char arr[5];
arr[0]='f';
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.09.2012, 04:49 #7
Слово перевести неподходит. Есть приведение типов, явное и не явное. Типы самих переменных, при этом, остаются неизменными.
Цитата Сообщение от to Посмотреть сообщение
можно ли обращаться к массиву wchar_t так же как к масиву char
Естественно. Просто надо учитывать, то если char это один байт, то wchar_t - несколько.
Пример явного и неявного приведения типов:
C++
1
2
3
4
5
6
char ch = 'a';
char ch2 = 'c';
wchar_t wch = L'b';
wch = ch2;
wch = (wchar_t)ch;
ch2 = (char)wch;
В последнем случае будет предупреждение компилятора о возможной потере данных.
to
19 / 19 / 0
Регистрация: 28.10.2010
Сообщений: 296
13.09.2012, 10:54  [ТС] #8
Цитата Сообщение от alsav22 Посмотреть сообщение
Слово перевести неподходит. Есть приведение типов, явное и не явное.
ок) мне нужно приведение типов от wchar_t в char
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.09.2012, 11:15 #9
Цитата Сообщение от to Посмотреть сообщение
ок) мне нужно приведение типов от wchar_t в char
Предыдущий пост. Возможна потеря данных.

Добавлено через 11 минут
Зачем нужно? Конкретная задача в чём?
to
19 / 19 / 0
Регистрация: 28.10.2010
Сообщений: 296
13.09.2012, 11:17  [ТС] #10
Цитата Сообщение от alsav22 Посмотреть сообщение
Зачем нужно? Конкретная задача в чём?
Использую функции FindFirstFile() и в ней первый параметр wchar_t
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.09.2012, 11:55 #11
И в чём проблема? Нужно передать в неё char? Компилятор ругается?
wchar_t *ch = L"aaaa";
to
19 / 19 / 0
Регистрация: 28.10.2010
Сообщений: 296
13.09.2012, 11:57  [ТС] #12
компилятор ругается на char. и ктому же мне нужно постоянно ее изменять, добавлять путь и удалять символы "*.*"

Добавлено через 1 минуту
А как мне найти в wchar_t вот такое вот "*.*" ?
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.09.2012, 12:09 #13
Цитата Сообщение от to Посмотреть сообщение
FindFirstFile() и в ней первый параметр wchar_t
В ней первый параметр указатель на wchar_t, т.е. широкая строка.

Добавлено через 11 минут
Есть такой вариант. Объявляете: wstring wstr = L"AAAA"; Работаете с этой строкой с помощью функций для string, а передаёте её в функцию так: FindFirstFile(wstr.c_str(), ...);
to
19 / 19 / 0
Регистрация: 28.10.2010
Сообщений: 296
13.09.2012, 12:11  [ТС] #14
спасибо! это то что надо!
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.09.2012, 12:11 #15
Цитата Сообщение от to Посмотреть сообщение
А как мне найти в wchar_t вот такое вот "*.*" ?
Конкретную строку приведите. Найти, и что сделать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2012, 12:11
Привет! Вот еще темы с ответами:

Wchar_t to char - C++
я тут обнаружил любопытнейшую вещь, оказывается можно просто присваивать char = wchar_t и наоборот ! просто хочу убедиться это как бы без...

Типы char and wchar_t - C++
Добрый день ! Хочу уточнить по поводу wchar_t известно что размер строки char всегда больше на 1 символ char str = "Hello"; ...

Char, TCHAR, wchar_t - C++
Как правильно записать эти 2 участка кода . Ошибки - 1>d:\c++\lab1\lab1\main.cpp(54): error C2664: strcpy: невозможно преобразовать...

Приведение char* к wchar_t* - C++
Доброго времени суток. Возникла следующая проблема.. есть код, который конвертит string в wchar_t const wchar_t* STDStrToWCHAR(const...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.09.2012, 12:11
Ответ Создать тему
Опции темы

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