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

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

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

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

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

Добрый вечер уважаемые форумчане! Как можно перевести из 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++ Cannot convert 'wchar_t &' to 'const char *'
Преобразование типов (long -> массив char) C++
C++ Преобразование char* в const wchar_t *
Char, TCHAR, wchar_t C++
C++ Cannot convert 'wchar_t *' to 'const char *'
C++ Wchar_t to char
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
to
19 / 19 / 0
Регистрация: 28.10.2010
Сообщений: 296
13.09.2012, 14:49  [ТС]     Преобразование типов wchar_t в char и обратно #21
Цитата Сообщение от to Посмотреть сообщение
Код C++
wstring str=L"c:\\*.*"
for(int i=0;i<8;i++)
if(str[i]=="*")
*// удаляю символ из строки
по чему я не могу проверить строку wstring как обычную string
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
13.09.2012, 14:53     Преобразование типов wchar_t в char и обратно #22
to, Гм. Вы и строку так не проверите откровенно говоря.

C++
1
2
3
4
wstring str=L"c:\\*.*"
for(int i=0;i<8;i++)
if(str[i] == L'*')
// удаление
to
19 / 19 / 0
Регистрация: 28.10.2010
Сообщений: 296
13.09.2012, 22:50  [ТС]     Преобразование типов wchar_t в char и обратно #23
еще такой вопрос, а как можно скопировать с одной строки wstring в другую определенное количество символов? Делал так
C++
1
2
wstring temp, puth;
strncpy(temp,puth,puth.length() -3);
но компилятор ругается на то что не может перевести переменную temp в char
alsav22
5413 / 4809 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.09.2012, 01:45     Преобразование типов wchar_t в char и обратно #24
C++
1
2
3
wstring temp;
wstring puth = L"abcdef";
temp.insert(0, puth, 0, puth.size() - 3);
Применяйте методы для класса string.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2012, 12:28     Преобразование типов wchar_t в char и обратно
Еще ссылки по теме:

Продемонстровать неявное преобразование типов: из целого в вещественный и обратно C++
C++ Преобразование int char и обратно
Типы char and wchar_t C++
Приведение char* к wchar_t* C++
C++ Char, wchar_t: не понимаю принцип их работы

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

Или воспользуйтесь поиском по форуму:
to
19 / 19 / 0
Регистрация: 28.10.2010
Сообщений: 296
16.09.2012, 12:28  [ТС]     Преобразование типов wchar_t в char и обратно #25
написал что-то похожее на правду, но все же, при обходе вложенных папок открывается только одна папка и распечатывается ее содержимое, а все остальные остаются не открытыми. в чем ошыбка? Нужно ли в функцию передавать Handle и структуру Win32_find_File
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void Search_File(wstring puth )
{
    wstring buf,temp;
    wstring mask=L"\\*.*";
    buf.insert(0,puth,0,puth.length());
    buf.insert(buf.length(),mask,0,mask.length());
    WIN32_FIND_DATA FindFileData;
    HANDLE hf=FindFirstFile(buf.c_str(), &FindFileData);
    if(hf != INVALID_HANDLE_VALUE)
    {
        while(FindNextFile(hf,&FindFileData)!=0)
        {
            temp=FindFileData.cFileName;
            if((FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)&&(temp.find('.')==string::npos))
            {
                printf("%S \n", FindFileData.cFileName);
                puth.insert(puth.length(),L"\\",0,2);
                puth.insert(puth.length(),temp,0,temp.length());
                Search_File(puth);
            }
            else 
                printf("%S \n",FindFileData.cFileName);
        }
    }
    
 
}
Yandex
Объявления
16.09.2012, 12:28     Преобразование типов wchar_t в char и обратно
Ответ Создать тему
Опции темы

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