|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
31.05.2012, 18:41 | #1 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Как вывести массив символов в MessagBox
Приветствую! Как правильно преобразовать содержимое буфера, чтобы эта строка корректно отображалась независимо от настроек проекта Visual C++ 2008 Express Edition:
"Использовать многобайтовую кодировку" "Использовать Юникод-кодировку" С константными строками нужно использовать макрос _T(), что я и делаю. А как быть с массивами символов? Код:
|
01.06.2012, 15:43 | #3 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Спасибо! Да... с кодировками не всё так просто...
Если написать: Код:
Последний раз редактировалось 8Observer8; 01.06.2012 в 15:47. |
01.06.2012, 16:15 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
поверьте, лучше применять лишь юникод, и быстрее(нет конвертирования) и проще.
исключения если нужны старые винды. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
01.06.2012, 16:37 | #5 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
То есть в настройках выставить: "Использовать Юникод-кодировку"?
Вот так? Я правильно понял? Код:
|
01.06.2012, 16:45 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
да, только MultiByteToWideChar, та С-функция не переносит русский.
и в вашем случае вы забываете про терминальный символ. строка должна быть BSIZE+1(и не помню этот момент, но массив нужно инициализировать, хотя бы его [BSIZE] элемент, чтоб терминал всегда был) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 01.06.2012 в 17:48. |
01.06.2012, 16:49 | #7 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Пепел Феникса, большое спасибо!
|
01.06.2012, 17:58 | #8 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Для сих целей необходимо использовать массив TCHAR и отображения функций из tchar.h. Их список можно поглядеть по ссылке http://msdn.microsoft.com/en-us/libr...(v=vs.80).aspx.
Для fgets это _fgetts |
01.06.2012, 18:20 | #9 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Ого! Супер! Спасибо огромное!
Код:
|
01.06.2012, 18:30 | #10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
тоже вариант, но честно говоря есть минус в том что вы вместе с настройками проекта выбираете и какого типа файл в можете прочесть(или UCS2 или ANSI)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как вывести значения с нужным количеством символов после запятой | kity | SQL, базы данных | 3 | 17.01.2012 18:16 |
Дан массив, состоящий из символов. Вывести на экран цифру, наиболее часто встречающуюся в этом массиве. | Andros_me | Помощь студентам | 2 | 21.12.2010 08:50 |
Как в Delphi вывести значения без пробелов и лишних символов | Lesa1988 | Помощь студентам | 0 | 25.11.2010 21:45 |
Как конвертировать массив символов в массив байт | davinci | C++ Builder | 6 | 30.10.2010 18:09 |
как присвоить все три значения вектору В и вывести его как массив столбец при вызове функции | Tomoa | Microsoft Office Excel | 8 | 08.03.2010 20:42 |