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

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

Войти
Регистрация
Восстановить пароль
 
lips
2 / 2 / 0
Регистрация: 03.01.2012
Сообщений: 283
#1

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

18.10.2012, 20:35. Просмотров 771. Ответов 5
Метки нет (Все метки)

не работает:
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++
Конвертация int в char* C++
C++ Конвертация char * -> WideString
Конвертация числа в строку (int to char) C++
C++ char конвертация
C++ string[] в char[][] или char[]
Конвертация из int в char C++
Конвертация ' string hex ' to char C++
C++ Конвертация int в char
Конвертация const char [] в PLCWSTR C++
Конвертация типов. float в string/char C++
Конвертация string в инт C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5411 / 4807 / 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
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 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
5411 / 4807 / 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
Ответ Создать тему
Опции темы

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