Экспорт (0) Печать
Развернуть все
and
div
eof
not
or
xor
Развернуть Свернуть
Данная статья переведена автоматически. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала

wctomb_s, _wctomb_s_l

Преобразует расширенный символ в соответствующий многобайтовый символ. Это версия wctomb, _wctomb_l с усовершенствованиями безопасности, как описано в Функции безопасности в CRT.

errno_t wctomb_s(
   int *pRetValue,
   char *mbchar,
   size_t sizeInBytes,
   wchar_t wchar 
);
errno_t _wctomb_s_l(
   int *pRetValue,
   char *mbchar,
   size_t sizeInBytes,
   wchar_t wchar,
   _locale_t locale
);

[исходящий] pRetValue

Число байтов, или код, представляющий результат.

[исходящий] mbchar

Адрес многобайтового символа.

[входящий] sizeInBytes

Размер буфера mbchar.

[входящий] wchar

Расширенный символ.

[входящий] locale

Используемый языковой стандарт.

Нуль, если успешно; код ошибки при неудаче.

Условия возникновения ошибки

mbchar

sizeInBytes

Возвращаемое значение

pRetValue

NULL

>0

EINVAL

без изменений

any

>INT_MAX

EINVAL

без изменений

any

слишком мало

EINVAL

без изменений

Если случается какая-либо из выше перечисленных ошибок, то вызывается обработчик недопустимых параметров, как описано в Проверка параметров. Если выполнение может быть продолжено, то wctomb возвращает EINVAL и устанавливает errno в EINVAL.

Функция wctomb_s преобразует свой аргумент wchar в соответствующие многобайтовые символы и сохраняет результат в mbchar. Функцию можно вызвать из любого места в любой программе.

Если wctomb_s преобразует расширенный символ в многобайтовый символ, она помещает количество байтов (которое никогда не превышает MB_CUR_MAX) расширенного символа в целое число, указанное в pRetValue. Если wchar расширенный нуль-символ (L'\0), wctomb_s помещает в pRetValue значение 1. Если указатель на целевой объект mbchar равен NULL, wctomb_s помещает в pRetValue значение 0. Если в текущем языковом стандарте преобразование невозможно, wctomb_s помещает в pRetValue значение -1.

wctomb_s использует текущий языковой стандарт для сведений, зависящих от языкового стандарта; _wctomb_s_l идентична за исключением того, что она использует переданный языковой стандарт. Для получения дополнительной информации см. Языковой стандарт.

Подпрограмма

Требуемый заголовок

wctomb_s

<stdlib.h>

_wctomb_s_l

<stdlib.h>

Дополнительные сведения о совместимости см. в разделе Совместимость во Введении.

Эта программа иллюстрирует поведение функции wctomb.

// crt_wctomb_s.cpp
#include <stdio.h>
#include <stdlib.h>

int main( void )
{
    int i;
    wchar_t wc = L'a';
    char *pmb = (char *)malloc( MB_CUR_MAX );

    printf_s( "Convert a wide character:\n" );
    wctomb_s( &i, pmb, MB_CUR_MAX, wc );
    printf_s( "   Characters converted: %u\n", i );
    printf_s( "   Multibyte character: %.1s\n\n", pmb );
}
Convert a wide character:
   Characters converted: 1
   Multibyte character: a

Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

Добавления сообщества

ДОБАВИТЬ
Показ:
© 2014 Microsoft