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

Преобразование из wchar_t в string - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 380
10.06.2014, 21:19     Преобразование из wchar_t в string #1
Здравствуйте! Подскажите, пожалуйста, каким образом можно преобразовать объект типа wchar_t в string.
Работаю со стеками, и одна из задач считать с editbox некоторое значение, которое записывается только в wchar_t, а стек STL не умеет с ним работать.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 21:27     Преобразование из wchar_t в string #2
Цитата Сообщение от casper007 Посмотреть сообщение
каким образом можно преобразовать объект типа wchar_t в string.
А wstring не подойдёт?
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 380
10.06.2014, 21:53  [ТС]     Преобразование из wchar_t в string #3
Цитата Сообщение от alsav22 Посмотреть сообщение
А wstring не подойдёт?
К сожалению нет. GetDlgItemTextW() требует третьим параметром LPWSTR переменную
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 22:43     Преобразование из wchar_t в string #4
Цитата Сообщение от casper007 Посмотреть сообщение
GetDlgItemTextW() требует третьим параметром LPWSTR переменную
И? Зачем wchar_t в string преобразовывать?

Добавлено через 3 минуты
И вот это как понять?
Цитата Сообщение от casper007 Посмотреть сообщение
wchar_t, а стек STL не умеет с ним работать.
Добавлено через 26 минут
Пофантазирую на тему...
C++
1
2
3
4
5
6
7
8
9
10
11
12
    HWND hDlg;
    GetDlgItemTextW(hDlg, 1, L"asdf", 2);
    
    wchar_t wch = L'A'; 
    GetDlgItemTextW(hDlg, 1, &wch, 2);
    
    wstring wstr;
    wstr += wch;
    GetDlgItemTextW(hDlg, 1, const_cast<wchar_t*>(wstr.c_str()), 2);
 
    wchar_t str[255];
    GetDlgItemTextW(hDlg, 1, str, 2);
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 380
10.06.2014, 22:44  [ТС]     Преобразование из wchar_t в string #5
Цитата Сообщение от alsav22 Посмотреть сообщение
И вот это как понять?
контейнер из библиотеки STL
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 22:48     Преобразование из wchar_t в string #6
Цитата Сообщение от casper007 Посмотреть сообщение
контейнер из библиотеки STL
Это понятно. Вот это непонятно:
Цитата Сообщение от casper007 Посмотреть сообщение
а стек STL не умеет с ним работать.
Добавлено через 27 секунд
???
Цитата Сообщение от alsav22 Посмотреть сообщение
Зачем wchar_t в string преобразовывать?
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 380
10.06.2014, 22:52  [ТС]     Преобразование из wchar_t в string #7
Цитата Сообщение от alsav22 Посмотреть сообщение
GetDlgItemTextW(hDlg, 1, const_cast<wchar_t*>
Цитата Сообщение от alsav22 Посмотреть сообщение
Пофантазирую на тему...
Считать - считал. Но мне нужно занести в стек эти данные. st.push(ddd) работает только со string
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 23:10     Преобразование из wchar_t в string #8
Цитата Сообщение от casper007 Посмотреть сообщение
работает только со string
Что работает только со string? Я, по-вашему, что - ясновидящий? Если вопросы задаёте, то показывайте: что есть что.
st - это что? ddd - это что?

Добавлено через 15 минут
Цитата Сообщение от casper007 Посмотреть сообщение
st.push(ddd) работает только со string
Опять пофантазирую...
C++
1
2
3
    stack <wstring> st;
    wstring ddd = L"wstring";
    st.push(ddd);
C++
1
2
3
    stack <wchar_t> st;
    wchar_t ddd = L'A';
    st.push(ddd);
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 380
10.06.2014, 23:15  [ТС]     Преобразование из wchar_t в string #9
По
Цитата Сообщение от alsav22 Посмотреть сообщение
Я, по-вашему, что - ясновидящий?
Получаем значение, которое ввел пользователь в editbox с помощью GetDlgItemTextW() в переменную wchar_t aaa.
Далее мы, в созданный нами стек stack<wstring> st добавляем полученные данные из editbox (st.push(aaa)). На последнем этапе возникает ошибка.
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 23:22     Преобразование из wchar_t в string #10
Цитата Сообщение от casper007 Посмотреть сообщение
Получаем значение, которое ввел пользователь в editbox с помощью GetDlgItemTextW() в переменную wchar_t aaa.
Далее мы, в созданный нами стек stack<wstring> st добавляем полученные данные из editbox (st.push(aaa)). На последнем этапе возникает ошибка.
Из этого следует вот это?
Цитата Сообщение от casper007 Посмотреть сообщение
wchar_t, а стек STL не умеет с ним работать.
Стек создаёте под wstring и пытаетесь запихнуть туда wchar_t ?
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 380
10.06.2014, 23:24  [ТС]     Преобразование из wchar_t в string #11
Цитата Сообщение от alsav22 Посмотреть сообщение
Стек создаёте под wstring и пытаетесь запихнуть туда wchar_t ?
Пытаюсь преобразовать из wchar_t в wstring (Читайте заголовок)
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 23:27     Преобразование из wchar_t в string #12
Цитата Сообщение от casper007 Посмотреть сообщение
Пытаюсь преобразовать из wchar_t в wstring (Читайте заголовок)
Глаза разуй:
Цитата Сообщение от casper007 Посмотреть сообщение
Преобразование из wchar_t в string
Ещё раз глаза разуй:
Цитата Сообщение от alsav22 Посмотреть сообщение
wchar_t wch = L'A';
...
wstring wstr;
wstr += wch;
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 380
10.06.2014, 23:34  [ТС]     Преобразование из wchar_t в string #13
Цитата Сообщение от alsav22 Посмотреть сообщение
Ещё раз глаза разуй:
Разул! Не работает.
Цитата Сообщение от alsav22 Посмотреть сообщение
wchar_t wch = L'A';
...
wstring wstr;
wstr += wch;
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 23:40     Преобразование из wchar_t в string #14
Цитата Сообщение от casper007 Посмотреть сообщение
Разул!
Непохоже...
Цитата Сообщение от casper007 Посмотреть сообщение
Не работает.
Что не работает? Где на работает? Код давай, который не работает.
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 380
10.06.2014, 23:40  [ТС]     Преобразование из wchar_t в string #15
Цитата Сообщение от alsav22 Посмотреть сообщение
Что не работает?
Все, что вы писали.
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 23:43     Преобразование из wchar_t в string #16
Цитата Сообщение от casper007 Посмотреть сообщение
Все, что вы писали.
Я много, что писал, и всё оно (именно то, что писал) у меня работает. А что, и как ты делаешь, мне не видно, извини, не ясновидящий.
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 380
11.06.2014, 00:01  [ТС]     Преобразование из wchar_t в string #17
Цитата Сообщение от alsav22 Посмотреть сообщение
А что, и как ты делаешь, мне не видно
Получаем значение, которое ввел пользователь в editbox с помощью GetDlgItemTextW() в переменную wchar_t aaa.
Далее мы, в созданный нами стек stack<wstring> st добавляем полученные данные из editbox (st.push(aaa)). На последнем этапе возникает ошибка.

C++
1
2
3
4
5
6
7
8
EditBox1 = CreateWindowExW(...(HMENU)IDE_EDIT1);
 
wchar_t fromEditBox[20];
 
GetDlgItemTextW(HWMain, IDE_EDIT1, fromEditBox, 20); //получаем значение editbox в переменную fromEditBox1
 
stack<wstring> st;
st.push(fromEditBox);// пытаемся запихнуть в стек эту пресловутую переменную
, но так как она другого типа, то ничего не получается, а если объявить стек так stack<wchar_t> st, то компилятор выдаст ошибку при добавлении нового элемента (будь-то набор символов, или один символ)


Все, что я делаю, чтобы добавить в стек значение, считанное из editbox.
ValeryS
Модератор
6403 / 4869 / 447
Регистрация: 14.02.2011
Сообщений: 16,158
11.06.2014, 00:09     Преобразование из wchar_t в string #18
Сообщение было отмечено автором темы, экспертом или модератором как ответ
ну так создай стринг
C++
1
2
wstring strTMP=fromEditBox;
st.push(strTMP);
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 380
11.06.2014, 00:16  [ТС]     Преобразование из wchar_t в string #19
Цитата Сообщение от ValeryS Посмотреть сообщение
ну так создай стринг
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2014, 00:23     Преобразование из wchar_t в string
Еще ссылки по теме:

C++ String в wchar_t*
C++ Преобразовать string в wchar_t
C++ Почему const wchar_t* воспринимается как wchar_t* ?
Wchar_t и unsigned wchar_t в windows C++
Преобразование string* в string C++

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

Или воспользуйтесь поиском по форуму:
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.06.2014, 00:23     Преобразование из wchar_t в string #20
Цитата Сообщение от casper007 Посмотреть сообщение
wchar_t fromEditBox[20];
fromEditBox, по-твоему, имеет тип wchar_t ?
Цитата Сообщение от casper007 Посмотреть сообщение
преобразовать объект типа wchar_t
Yandex
Объявления
11.06.2014, 00:23     Преобразование из wchar_t в string
Ответ Создать тему
Опции темы

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