|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
||||||
Как передать текст из поля ввода в массив символов?24.01.2023, 04:07. Показов 4775. Ответов 25
Метки нет (Все метки)
Всех приветствую. Когда я передаю строку так:
Добавлено через 1 час 51 минуту Неужели все знающие visual c++ вымерли,или вымерли только знающие c++ на cyberforum.ru? Добавлено через 5 часов 41 минуту Подскажите пожалуйста,хотя бы,как правильно зарепортить этот баг в microsoft,т.к раньше я не репортил багов в microsoft.
0
|
||||||
| 24.01.2023, 04:07 | |
|
Ответы с готовыми решениями:
25
Как передать переменную типа char из поля ввода в лист? Как выводить и проверять текст из поля ввода? |
|
фрилансер
6444 / 5637 / 1128
Регистрация: 11.10.2019
Сообщений: 14,994
|
||||||
| 24.01.2023, 07:03 | ||||||
|
КАВ, нет там никаких багов. Получаешь строку
далее конвертируй в нужную кодировку при помощи MultiByteToWideChar WideCharToMultiByte
0
|
||||||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
||||||
| 24.01.2023, 14:52 [ТС] | ||||||
|
Огромное Вам спасибо. А почему не работает макрос CT2A,который вроде работает для обычной строки CString. Как узнать,что у меня используется - CStringA или CStringW? Какой вариант предпочтительнее?
Я делаю так:
0
|
||||||
|
фрилансер
6444 / 5637 / 1128
Регистрация: 11.10.2019
Сообщений: 14,994
|
||||
| 24.01.2023, 14:55 | ||||
Configuration properties - Advanced - Character Set - или прыгнуть к определению идентификатора CString
0
|
||||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
||||||
| 24.01.2023, 19:02 [ТС] | ||||||
|
У меня в проекте вроде используется юникод. CT2A и ct2W это макросы,которые есть,как я понимаю,в mfc. Вот я и хочу зарепортить баг,что они не работают как следует.
Добавлено через 3 часа 44 минуты Оказывается мне нужна функция,переводящая CString в char* utf8. В проекте (изначально это был не мой проект) Есть такая функция,правда во-первых она возвращает std::string,а мне нужен char*,а во-вторых я не уверен,что это наилучший вариант,т.к в нете видел прилично функций,переводящих из CString в char utf8 . А какая наиболее правильная - Вопрос.
Обидно,что mfc не предоставляет готовую функцию для этих целей.
0
|
||||||
|
фрилансер
6444 / 5637 / 1128
Регистрация: 11.10.2019
Сообщений: 14,994
|
|
| 24.01.2023, 19:54 | |
|
0
|
|
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|
| 24.01.2023, 21:24 [ТС] | |
|
Я понял. просто для этого нужно объявлять отдельную переменную cString,а я видел в интернете функции,которые сразу конвертируют строку в utf-8 и возвращают массив символов,правда какие из них более правильные - вот в чём вопрос. Если я не найду ответ,придётся использовать то,что до меня писали в этом проекте (см код выше). Также как потом правильно прибавлять к ней что-либо,т.е чтобы,к примеру,написать "@metaparser %s",command где command - Массив символов,переконвертированный в utf-8.
0
|
|
|
фрилансер
6444 / 5637 / 1128
Регистрация: 11.10.2019
Сообщений: 14,994
|
|
| 24.01.2023, 21:50 | |
|
КАВ, std::string - это и есть массив символов, только в удобной обёртке.
Добавлено через 1 минуту если нужно работать с utf8, то внутри программы всё удобно будет держать в std::string. CString вообще не особо нужен, он лишь как промежуточное средство при отображении на экран или считывании из окна ввода
0
|
|
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|
| 24.01.2023, 22:28 [ТС] | |
|
А почему в окне или в полях ввода не используется wstring,
Добавлено через 5 минут И как всё-таки правильно переводить из cstring в массив символов utf-8 с возможностью добавлять строки,используя print,snprintf и т.д?
0
|
|
|
фрилансер
6444 / 5637 / 1128
Регистрация: 11.10.2019
Сообщений: 14,994
|
|||
| 24.01.2023, 22:56 | |||
Но всегда можно юзать винапи напрямую и пользоваться std::string/std::wstring
0
|
|||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|
| 25.01.2023, 00:14 [ТС] | |
|
Хорошо. А как сконвертировать CString в stl контейнер. Как потом сконвертировать его в utf-8 и можно ли изменить этот массив,т.е не пострадает ли кодировка,если я буду использовать что-то типа "@metaparser %s"",т.е модифицировать этот символьный массив и можно ли как-то изменить существующий массив,или лучше распечатать модифицированный массив в другой массив (snprintf(cmd, sizeof(cmd), "@metaparser "%s"",utf8Array)).
0
|
|
|
фрилансер
6444 / 5637 / 1128
Регистрация: 11.10.2019
Сообщений: 14,994
|
|
| 25.01.2023, 00:25 | |
|
КАВ, из CStringW можно сразу конвертировать в std::string, содержащий utf8 (пост №5 - чуток переделать код)
форматирование нужно будет делать методами класса std::ostringstream . Всё добавляемое в строку делать сразу в utf8
0
|
|
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|
| 25.01.2023, 00:37 [ТС] | |
|
А как изменить мой код,чтобы сделать это напрямую? Просто я толком не знаю c++ и пишу,в основном,на java/python. А тут нужно доработать для себя и для других один c++ проект. Не могли бы Вы пожалуйста написать пример,как это правильно делать в 2023 году,т.к сейчас многое поменялось чем,к примеру,10-12 лет назад.
0
|
|
|
фрилансер
6444 / 5637 / 1128
Регистрация: 11.10.2019
Сообщений: 14,994
|
||||||
| 25.01.2023, 07:20 | ||||||
|
КАВ, например
1
|
||||||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|
| 25.01.2023, 15:30 [ТС] | |
|
Огромное спасибо. Теперь вопрос как правильно это использовать,я имею ввиду после того,как я выполню форматирование и другие вещи,не нужно ли мне как-то освободить эту переменную?
0
|
|
|
фрилансер
6444 / 5637 / 1128
Регистрация: 11.10.2019
Сообщений: 14,994
|
|
| 25.01.2023, 15:38 | |
|
КАВ, это класс, он сам умеет освобождать свои ресурсы
0
|
|
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|
| 25.01.2023, 16:06 [ТС] | |
|
А разве не надо будет вызвать диструктор,или что-то типа delete string. Кстати интересно,а если бы мы работали в c,а не в c++,надо было бы освобождать string,или структура тоже сама освободила бы свои данные. Если Вам нетрудно,не могли бы Вы пожалуйста написать метод и обратно конвертирующий char* в строку utf-8. Просто у Вас он,на мой взгляд,будет лучше чем тот,что был реализован в проекте. Кстати функция resize пересчитывает размер памяти,который нужно выделить для переменной?
0
|
|
|
фрилансер
6444 / 5637 / 1128
Регистрация: 11.10.2019
Сообщений: 14,994
|
||||
| 25.01.2023, 16:11 | ||||
|
вот если объект создаётся при помощи new, то нужно будет вызвать delete метод resize устанавливает размер внутреннего буфера
0
|
||||
|
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
|
|
| 25.01.2023, 19:08 [ТС] | |
|
Насчёт c понятно. Просто я думал,что структура сама всё освободит. А насчёт кодировки неуверен,но вроде массив в utf-8.
Добавлено через 1 час 51 минуту По сути мне нужна функция,которая делает обратное тому,что Вы написали.
0
|
|
|
фрилансер
6444 / 5637 / 1128
Регистрация: 11.10.2019
Сообщений: 14,994
|
||||||
| 25.01.2023, 19:45 | ||||||
|
КАВ, что-то навроде такого
0
|
||||||
| 25.01.2023, 19:45 | |
|
Помогаю со студенческими работами здесь
20
Как вывести текст из поля ввода (edit) в f1book?
Передать данные из поля ввода в программу Текст из поля ввода в список Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение
Это мой обзор планшета X220 с точки зрения школьника.
Недавно я решила попытаться уменьшить свой. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|