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

Конвертация из String в Char - C++

Восстановить пароль Регистрация
 
lips
2 / 2 / 0
Регистрация: 03.01.2012
Сообщений: 283
18.10.2012, 20:35     Конвертация из String в Char #1
не работает:
C++
1
2
char* temp_text = new char [100];
temp_text = Edit1->Text.c_str();
почему?

говарит вот такое:
[BCC32 Error] Unit1.cpp(111): E2034 Cannot convert 'wchar_t *' to 'char *'
как это исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2012, 20:35     Конвертация из String в Char
Посмотрите здесь:

Конвертация int в char* C++
C++ char конвертация
Конвертация из int в char C++
Конвертация ' string hex ' to char C++
C++ Конвертация int в char
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.10.2012, 20:41     Конвертация из String в Char #2
Цитата Сообщение от lips Посмотреть сообщение
говарит вот такое:
Наверное, Edit1->Text.c_str() возвращает указатель на wchar_t.

Цитата Сообщение от lips Посмотреть сообщение
как это исправить?
Попробуйте так:
C++
1
wchar_t* temp_text = new wchar_t [100];
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
18.10.2012, 20:44     Конвертация из String в Char #3
lips, 1) как уже сказали - используйте wchar_t.
2)
C++
1
2
char* temp_text = new char [100];
temp_text = Edit1->Text.c_str();
Бред же. Выделили память и тут же присвоили этому указателю другой кусок памяти и между прочим c_str (если это конечно std::string) вернет const CharT*. Тут копия должна быть, вместо присваивания, полагаю нечто вроде wscpy.
lips
2 / 2 / 0
Регистрация: 03.01.2012
Сообщений: 283
18.10.2012, 20:52  [ТС]     Конвертация из String в Char #4
Цитата Сообщение от ForEveR Посмотреть сообщение
lips, 1) как уже сказали - используйте wchar_t.
2)
C++
1
2
char* temp_text = new char [100];
temp_text = Edit1->Text.c_str();
Бред же. Выделили память и тут же присвоили этому указателю другой кусок памяти и между прочим c_str (если это конечно std::string) вернет const CharT*. Тут копия должна быть, вместо присваивания, полагаю нечто вроде wscpy.
ну а почему тогда если написать так:
C++
1
2
   char* a = new char[100];
a = Socket->ReceiveText().c_str();
то работает прекрасно...

да мог бы использовать wchar_t но у меня тогда ругается на сл строку
C++
1
send(sock,temp_text,sizeof(temp_text),0);
пишет
[BCC32 Error] Unit1.cpp(113): E2034 Cannot convert 'wchar_t *' to 'const char *'
[BCC32 Error] Unit1.cpp(113): E2342 Type mismatch in parameter 'buf' (wanted 'const char *', got 'wchar_t *')

Не по теме:

извиняюсь за неполное описание проблемы

alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.10.2012, 21:09     Конвертация из String в Char #5
Цитата Сообщение от lips Посмотреть сообщение
ну а почему тогда если написать так:Код C++
1
2 char* a = new char[100];
a = Socket->ReceiveText().c_str();
то работает прекрасно...
Наверное, Socket->ReceiveText().c_str() возвращает указатель на char.
lips
2 / 2 / 0
Регистрация: 03.01.2012
Сообщений: 283
18.10.2012, 21:10  [ТС]     Конвертация из String в Char #6
а в этой ситуации что делать то тогда?? хелп плз
C++
1
2
3
wchar_t* temp_text = new wchar_t [100];
temp_text = Edit1->Text.c_str();
send(sock,temp_text,sizeof(temp_text),0);
Yandex
Объявления
18.10.2012, 21:10     Конвертация из String в Char
Ответ Создать тему
Опции темы

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