Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
1ropb
4 / 4 / 0
Регистрация: 23.09.2012
Сообщений: 74
#1

Cannot convert 'UnicodeString' to 'String' - C++

07.11.2012, 20:24. Просмотров 1351. Ответов 10
Метки нет (Все метки)

Подскажите как конвертировать такие форматы, компилятор если что RAT Studio 2010
нашел тут вариант наоборот(Cannot convert 'string' to 'UnicodeString'):
C++
1
2
3
using namespace std;
string sstr = "test";
UnicodeString str = sstr.c_str();
обратно не работает(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2012, 20:24
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Cannot convert 'UnicodeString' to 'String' (C++):

Cannot convert 'UnicodeString' to 'const char *' - C++
делаю локальную сеть, столкнулся с проблемой: addr.sin_addr.s_addr=inet_addr("192.168.0.3"); как сделать чтобы ip мог задать...

Cannot convert 'UnicodeString' to 'const char *' - C++
При написании программы столкнулся с проблемой. На этих строчках: char sFInName=STR_FILE_IN_NAME, sFOutName=STR_FILE_OUT_NAME,...

Convert string to char - C++
В структуре надо зарандомить имена. Пробую таким способом: создал массив имен string arrayName = { "Vasya", "Petya", "Andrey",...

Ошибка Cannot convert std::string to void* - C++
Не могу сконвертировать строку в void*: std::string str; (void*)str; Вернее invalid cast from type std::string to type void* ...

cannot convert parameter 1 from 'int' to 'std::string &' - C++
string kolvo(string &S, int &k) { unsigned int i; for(i=1; i<S.length(); i++) if(S=='B' && S==' ') k=k+1; } ...

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri - C++
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

10
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,778
Записей в блоге: 3
Завершенные тесты: 1
07.11.2012, 21:16 #2
Это не Unicode строка
C++
1
string sstr = "test";
sstr.c_str() возвращает указатель на строку с нулевым символом в конце, для передачи в функции.
0
1ropb
4 / 4 / 0
Регистрация: 23.09.2012
Сообщений: 74
07.11.2012, 21:36  [ТС] #3
а, там вот так было
C++
1
string sstr = L"test";
но ведь c_str() нужен для конвертации в char*, разве в юникод можно чары записывать?
если да, то как сделать наоборот?
0
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,778
Записей в блоге: 3
Завершенные тесты: 1
07.11.2012, 21:41 #4
Цитата Сообщение от 1ropb Посмотреть сообщение
а, там вот так было
string - это
C++
1
typedef basic_string<char> string
wstring - это
C++
1
typedef basic_string<wchar_t> wstring
c_str() возвращает указатель на строку с нулевым символом в конце.
Это необходимо для функций, типа printf'а.
Посмотрите разницу
C++
1
2
    string s="asdfg";
    printf("%s",s);
C++
1
2
    string s="asdfg";
    printf("%s",s.c_str());
string вернет char*, а wstring вернет wchar_t*
0
1ropb
4 / 4 / 0
Регистрация: 23.09.2012
Сообщений: 74
07.11.2012, 22:16  [ТС] #5
Ну получилась очень странная вещь в виде смайла:
0
Миниатюры
Cannot convert 'UnicodeString' to 'String'  
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,778
Записей в блоге: 3
Завершенные тесты: 1
07.11.2012, 22:26 #6
C++
1
2
string sstr = "test";
UnicodeString str = sstr.c_str();
В данном случае Вы пытаетесь переменной типа UnicodeString присвоить указатель на char
0
1ropb
4 / 4 / 0
Регистрация: 23.09.2012
Сообщений: 74
07.11.2012, 22:38  [ТС] #7
хм, так как мне из UnicodeString сделать TString (или TStringList*)?
0
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,778
Записей в блоге: 3
Завершенные тесты: 1
07.11.2012, 22:49 #8
Как из UnicodeString строку перевести в TString?
1
1ropb
4 / 4 / 0
Регистрация: 23.09.2012
Сообщений: 74
07.11.2012, 23:14  [ТС] #9
а, спс, вот так сделал
C++
1
2
3
4
5
6
TStringList* SL = new TStringList;
String S;
// Весь текст
S= SL->Text;
// Конкретная строка
S= SL->Strings[index];
0
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,778
Записей в блоге: 3
Завершенные тесты: 1
07.11.2012, 23:15 #10
C++
1
delete SL;
потом не забудьте =)
1
1ropb
4 / 4 / 0
Регистрация: 23.09.2012
Сообщений: 74
07.11.2012, 23:24  [ТС] #11
кстати да)
0
07.11.2012, 23:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2012, 23:24
Привет! Вот еще темы с ответами:

Ошибка при компиляции "Cannot convert `std::string' to `const char*" - C++
Подскажите пожалуйста.Компилятор указывает на 13-ой позиции на ошибку типа: cannot convert `std::string' to `const char* for argument `1'...

Could not convert variant of type (Null) into type (String) - C++
if(DBLookupComboBoxDoctor-&gt;ListField.IsEmpty()) ...

Std::string and std::wstring convert - C++
случайно наткнулся на такую вот конвертацию std::string в std::wstring std::string text(&quot;text&quot;); ...

ошибка в программе (cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*') - C++
int main() { string fileName, currWord, currMax = &quot;&quot;; cin&gt;&gt;fileName; freopen(fileName, &quot;r&quot;, stdin); while...


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

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

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