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

Как задать локаль для потока? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Даны два массива размерности N*M и K*P. Cформировать новые одномерные массивы http://www.cyberforum.ru/cpp-beginners/thread857088.html
:cry:Очень прошу, помочь мне с задачами, никак не получаются, через несколько часов сдавать!!!! 1.Даны два массива размерности N*M и K*P. Из элементов не превыщающих пяти первого массива и эл не...
C++ Связной список и сортировка Помогите написать прогу: Реализующую связный список с информацией о сотрудниках и отображающую список в порядке возрастания возраста сотрудника В виду Фамилия Имя Отчество Возраст http://www.cyberforum.ru/cpp-beginners/thread857087.html
Сумма цифр заданного числа N C++
Добрый день ! Помогите написать программу , вычисляющую сумму цифр заданного числа N. Рекурсивным и не рекурсивным способом. Заранее огромное спасибо !!!
C++ Esc как символ конца ввода
Доброго времени суток. Есть такой вопрос. Как мне закончить ввод при нажатии esc. Например, если пользователь вводит некий текст (через cin например) и нажимает enter, то ввод заканчивается и этот...
C++ Количество символов в текстовом файле http://www.cyberforum.ru/cpp-beginners/thread857026.html
Доброго почти утра вам=) Такой вопрос, можно ли определить длину текстового файла? Файл открыл через fopen, а теперь нужно присвоить переменной количество символов в этом файле. Чем...
C++ Как передать массив в функции Здравствуйте друзья! Я переписываю достаточно большую программу с Delphi 7 на C++. Код я уже весь адаптировал, компилятор ошибок не выдает, начал тестировать и понял, что прога пока ничего не... подробнее

Показать сообщение отдельно
Убежденный
Ушел с форума
Эксперт С++
15786 / 7223 / 1138
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
09.05.2013, 21:11
Если вкратце. Есть буфер, размер которого известен, с текстом в кодировке UTF-8.
Текст нужно перевести в UTF-16.

Шаг 1 - определяем размер выходного буфера.
Для этого вызываем MultiByteToWideChar, указывая ноль в cchWideChar.
В описании этого параметра сказано: "If this value is 0, the function returns the
required buffer size, in characters, including any terminating null character, and makes
no use of the lpWideCharStr buffer". В случае успеха функция вернет необходимый
размер выходного буфера, в символах.

Шаг 2 - выделяем буфер необходимого размера (new/malloc/VirtualAlloc и т.п.).

Шаг 3 - вызываем функцию MultiByteToWideChar повторно, теперь в последних
параметрах указываем адрес и размер выходного буфера.

Особое внимание уделите вот этому фрагменту из описания функции:
cbMultiByte [in]

If this parameter is -1, the function processes the entire input string, including the
terminating null character. Therefore, the resulting Unicode string has a terminating
null character, and the length returned by the function includes this character.

If this parameter is set to a positive integer, the function processes exactly the
specified number of bytes. If the provided size does not include a terminating null
character, the resulting Unicode string is not null-terminated, and the returned
length does not include this character.
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.