Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
casper007
69 / 69 / 58
Регистрация: 12.12.2013
Сообщений: 420
1

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

10.06.2014, 21:19. Просмотров 2417. Ответов 26
Метки нет (Все метки)

Здравствуйте! Подскажите, пожалуйста, каким образом можно преобразовать объект типа wchar_t в string.
Работаю со стеками, и одна из задач считать с editbox некоторое значение, которое записывается только в wchar_t, а стек STL не умеет с ним работать.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2014, 21:19
Ответы с готовыми решениями:

String to wchar_t
День всем добрый. Уже пролазил весь интернет, и ничего не понял. Вся надежда...

wchar_t в string
Собственно, как можно преобразовать wchar_t* в string?

String в wchar_t*
Всем доброго времени суток! Вопрос уже изъезжен давно, но я уже 2 недели...

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

Преобразовать string в wchar_t
Подскажите как переобразовать string в wchar вот код wchar_t buffer; string...

26
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 21:27 2
Цитата Сообщение от casper007 Посмотреть сообщение
каким образом можно преобразовать объект типа wchar_t в string.
А wstring не подойдёт?
0
casper007
69 / 69 / 58
Регистрация: 12.12.2013
Сообщений: 420
10.06.2014, 21:53  [ТС] 3
Цитата Сообщение от alsav22 Посмотреть сообщение
А wstring не подойдёт?
К сожалению нет. GetDlgItemTextW() требует третьим параметром LPWSTR переменную
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 22:43 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);
0
casper007
69 / 69 / 58
Регистрация: 12.12.2013
Сообщений: 420
10.06.2014, 22:44  [ТС] 5
Цитата Сообщение от alsav22 Посмотреть сообщение
И вот это как понять?
контейнер из библиотеки STL
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 22:48 6
Цитата Сообщение от casper007 Посмотреть сообщение
контейнер из библиотеки STL
Это понятно. Вот это непонятно:
Цитата Сообщение от casper007 Посмотреть сообщение
а стек STL не умеет с ним работать.
Добавлено через 27 секунд
???
Цитата Сообщение от alsav22 Посмотреть сообщение
Зачем wchar_t в string преобразовывать?
0
casper007
69 / 69 / 58
Регистрация: 12.12.2013
Сообщений: 420
10.06.2014, 22:52  [ТС] 7
Цитата Сообщение от alsav22 Посмотреть сообщение
GetDlgItemTextW(hDlg, 1, const_cast<wchar_t*>
Цитата Сообщение от alsav22 Посмотреть сообщение
Пофантазирую на тему...
Считать - считал. Но мне нужно занести в стек эти данные. st.push(ddd) работает только со string
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 23:10 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);
0
casper007
69 / 69 / 58
Регистрация: 12.12.2013
Сообщений: 420
10.06.2014, 23:15  [ТС] 9
По
Цитата Сообщение от alsav22 Посмотреть сообщение
Я, по-вашему, что - ясновидящий?
Получаем значение, которое ввел пользователь в editbox с помощью GetDlgItemTextW() в переменную wchar_t aaa.
Далее мы, в созданный нами стек stack<wstring> st добавляем полученные данные из editbox (st.push(aaa)). На последнем этапе возникает ошибка.
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 23:22 10
Цитата Сообщение от casper007 Посмотреть сообщение
Получаем значение, которое ввел пользователь в editbox с помощью GetDlgItemTextW() в переменную wchar_t aaa.
Далее мы, в созданный нами стек stack<wstring> st добавляем полученные данные из editbox (st.push(aaa)). На последнем этапе возникает ошибка.
Из этого следует вот это?
Цитата Сообщение от casper007 Посмотреть сообщение
wchar_t, а стек STL не умеет с ним работать.
Стек создаёте под wstring и пытаетесь запихнуть туда wchar_t ?
0
casper007
69 / 69 / 58
Регистрация: 12.12.2013
Сообщений: 420
10.06.2014, 23:24  [ТС] 11
Цитата Сообщение от alsav22 Посмотреть сообщение
Стек создаёте под wstring и пытаетесь запихнуть туда wchar_t ?
Пытаюсь преобразовать из wchar_t в wstring (Читайте заголовок)
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 23:27 12
Цитата Сообщение от casper007 Посмотреть сообщение
Пытаюсь преобразовать из wchar_t в wstring (Читайте заголовок)
Глаза разуй:
Цитата Сообщение от casper007 Посмотреть сообщение
Преобразование из wchar_t в string
Ещё раз глаза разуй:
Цитата Сообщение от alsav22 Посмотреть сообщение
wchar_t wch = L'A';
...
wstring wstr;
wstr += wch;
0
casper007
69 / 69 / 58
Регистрация: 12.12.2013
Сообщений: 420
10.06.2014, 23:34  [ТС] 13
Цитата Сообщение от alsav22 Посмотреть сообщение
Ещё раз глаза разуй:
Разул! Не работает.
Цитата Сообщение от alsav22 Посмотреть сообщение
wchar_t wch = L'A';
...
wstring wstr;
wstr += wch;
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 23:40 14
Цитата Сообщение от casper007 Посмотреть сообщение
Разул!
Непохоже...
Цитата Сообщение от casper007 Посмотреть сообщение
Не работает.
Что не работает? Где на работает? Код давай, который не работает.
0
casper007
69 / 69 / 58
Регистрация: 12.12.2013
Сообщений: 420
10.06.2014, 23:40  [ТС] 15
Цитата Сообщение от alsav22 Посмотреть сообщение
Что не работает?
Все, что вы писали.
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 23:43 16
Цитата Сообщение от casper007 Посмотреть сообщение
Все, что вы писали.
Я много, что писал, и всё оно (именно то, что писал) у меня работает. А что, и как ты делаешь, мне не видно, извини, не ясновидящий.
0
casper007
69 / 69 / 58
Регистрация: 12.12.2013
Сообщений: 420
11.06.2014, 00:01  [ТС] 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.
0
ValeryS
Модератор
7265 / 5519 / 692
Регистрация: 14.02.2011
Сообщений: 18,695
11.06.2014, 00:09 18
Лучший ответ Сообщение было отмечено casper007 как решение

Решение

ну так создай стринг
C++
1
2
wstring strTMP=fromEditBox;
st.push(strTMP);
1
casper007
69 / 69 / 58
Регистрация: 12.12.2013
Сообщений: 420
11.06.2014, 00:16  [ТС] 19
Цитата Сообщение от ValeryS Посмотреть сообщение
ну так создай стринг
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
11.06.2014, 00:23 20
Цитата Сообщение от casper007 Посмотреть сообщение
wchar_t fromEditBox[20];
fromEditBox, по-твоему, имеет тип wchar_t ?
Цитата Сообщение от casper007 Посмотреть сообщение
преобразовать объект типа wchar_t
0
11.06.2014, 00:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2014, 00:23

Преобразование char* в const wchar_t *
Есть кусок кода, при компиляции выскакивает ошибка о о неудачном преобразовании...

Из wchar_t* в wstring или в string
Как перевести из wchar_t* в wstring или в string ? Почему столько геморроя со...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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