Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344

Как передать текст из поля ввода в массив символов?

24.01.2023, 04:07. Показов 4937. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всех приветствую. Когда я передаю строку так:
C++
1
2
char cmd[256];
            snprintf(cmd, sizeof(cmd), "@metaparser \"%s\"", CT2A(textIn));
Вроде всё работает,но когда я это делаю через someEdit.GetWindowTextW(textIn),т.е заношу текст в CString переменную и выполняю вышеуказанный код,у меня некорректно передаётся юникодовская строка. Подскажите пожалуйста,как это исправить? Может это баг,который нужно зарепортить в microsoft? Заранее всем огромное спасибо за помощь.

Добавлено через 1 час 51 минуту
Неужели все знающие visual c++ вымерли,или вымерли только знающие c++ на cyberforum.ru?

Добавлено через 5 часов 41 минуту
Подскажите пожалуйста,хотя бы,как правильно зарепортить этот баг в microsoft,т.к раньше я не репортил багов в microsoft.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.01.2023, 04:07
Ответы с готовыми решениями:

Как передать значение поля ввода в переменную?
<input type="text" name="timeend" class="tcal" value="" /> нужно передать timeend в java script Добавлено через 20 минут ...

Как передать переменную типа char из поля ввода в лист?
//Как передать переменную из типа char TextForList; из поля ввода в лист C++ WINAPI? #include <Windows.h> #include <string> ...

Как выводить и проверять текст из поля ввода?
Есть код, который проверяет введенный текст из поля ввода с текстом который в программе, но задача состоит в следующем: пользователь вводит...

25
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
25.01.2023, 20:15  [ТС]
Студворк — интернет-сервис помощи студентам
Огромное Вам спасибо. Что-то подобное есть и у нас в проекте,только Ваша функция,на мой взгляд,лучше. К примеру Вы делаете проверку на utf8.size()<=(size_t)(std::numeric_limit s<int>::max)(). Интересно,для чего это нужно? Очень жаль,что microsoft не предоставил готовые функции. В ndk (android разработка) есть готовые функции для этого.
0
фрилансер
 Аватар для Алексей1153
6496 / 5727 / 1133
Регистрация: 11.10.2019
Сообщений: 15,289
25.01.2023, 20:27
Цитата Сообщение от КАВ Посмотреть сообщение
проверку
аргумент функции MultiByteToWideChar имеет тип int (со знаком), а размер std::string_view - тип size_t (без знака)

Добавлено через 1 минуту
подправил ответ )
0
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
26.01.2023, 01:45  [ТС]
Огромное спасибо. А в Вашей последней функции ::MultiByteToWideChar(CP_UTF8, 0, utf8.data(), (int)utf8.size(), utf16.GetBuffer(), utf16.GetLength()); не нужно в конце вызывать utf16.ReleaseBuffer(). Просто я читал,что нужно вызывать эту функцию.

Добавлено через 1 час 49 минут
Огромное Вам спасибо. Вроде в моём коде всё прекрасно работает,хотя неизвестно,что будет дальше. Очень жаль,что в std::string нет (по крайней мере я не нашёл) форматирования строк,поэтому делаю так:
C++
1
            snprintf(cmd, sizeof(cmd), "@metaparser \"%s\"", newCmd.data());
Правда,как я понимаю,функция snprintf не очищает массив символов перед заполнением,а мне это очень нужно,т.к я буду использовать cmd,согласно алгоритму,несколько раз,хотя иногда и будут случаи,когда это будет один раз.

Добавлено через 1 час 45 минут
Прошу прощения,это был мой косяк в коде. Всё нормально очищается. Огромное Вам спасибо за помощь. Правильно ли я понимаю,что при выходе из функции переменная сама освободится,т.е не надо будет явно писать delete string?
1
фрилансер
 Аватар для Алексей1153
6496 / 5727 / 1133
Регистрация: 11.10.2019
Сообщений: 15,289
26.01.2023, 08:16
КАВ, кстати, да, перед 10-й строкой нужен вызов utf16.ReleaseBuffer()

Добавлено через 1 минуту
Цитата Сообщение от КАВ Посмотреть сообщение
в std::string нет (по крайней мере я не нашёл) форматирования строк
есть через std::ostringstream https://en.cppreference.com/w/... rator_ltlt

Добавлено через 43 секунды
Цитата Сообщение от КАВ Посмотреть сообщение
не надо будет явно писать delete string
не надо, само удалится
0
17 / 5 / 0
Регистрация: 16.04.2016
Сообщений: 344
26.01.2023, 13:45  [ТС]
А в функции,конвертирующей в utf8 ничего освобождать не надо? Кстати почему класс cstring сам не освобождает буфер после выхода из метода? Простите,что задаю такие вопросы,просто я,в основном,пишу на java и python,где насчёт памяти не надо парится,а вот в c и c++ это нужно делать? Интересно,есть ли в студии способ отлаживать утечку памяти в mfc приложениях,не добавляя в проект лишнего кода?
0
фрилансер
 Аватар для Алексей1153
6496 / 5727 / 1133
Регистрация: 11.10.2019
Сообщений: 15,289
26.01.2023, 13:50
КАВ, у CString используется COW, отсюда заморочка с ReleaseBuffer

std::string не использует COW. Всё, что нужно, освободится в деструкторе класса
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.01.2023, 13:50

Как вывести текст из поля ввода (edit) в f1book?
у меня есть функция, которую я ввожу в edit, потом хочу , чтобы эта функция отображалась в f1book. И если не сложно как сделать , чтобы она...

Как считать текст из txt файла и вставить его в компонент webbrowser в поля ввода (авторизация)
help mee

Передать значение поля ввода в запрос
Всем доброго времени суток! Дайте, пожалуйста, идею в реализации задачи: В отчет по оборотам денежных средств (сделан с помощью...

Передать данные из поля ввода в программу
Добрый день! Есть программа для запроса выписок из Росреестра. Программа без GUI. Захотелось сделать интерфейс для ввода...

Текст из поля ввода в список
Решите задачу: напишите программу по следующему описанию. Нажатие Enter в однострочном текстовом поле приводит к перемещению текста из...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru