_cprintf_s, _cprintf_s_l, _cwprintf_s, _cwprintf_s_l

Форматирует и выводит на консоль. В этих версиях _cprintf, _cprintf_l, _cwprintf, _cwprintf_l усовершенствована безопасность, как описано в разделе Функции безопасности в CRT.

Важно!

Этот API невозможно использовать в приложениях, запускаемых в среде выполнения Windows.Дополнительные сведения см. в статье Функции CRT, которые не поддерживаются с ключом /ZW.

int _cprintf_s( 
   const char * format [, 
   argument] ... 
);
int _cprintf_s_l( 
   const char * format,
   locale_t locale [, 
   argument] ... 
);
int _cwprintf_s(
   const wchar * format [, 
   argument] ...
);
int _cwprintf_s_l(
   const wchar * format,
   locale_t locale [, 
   argument] ...
);

Параметры

  • format
    Строка управления форматом.

  • argument
    Необязательные параметры.

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

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

Число печатаемых знаков.

Заметки

Эти функции форматируют и печатают наборы символов и значений напрямую на консоль, используя для вывода символов функцию _putch (_putwch для _cwprintf_s). Каждый argument (если он есть) преобразуется и выводится согласно соответствующей спецификацией формата в format. Формат имеет те же форму и функцию, что и параметр format для функции printf_s. В отличие от функций fprintf_s, printf_s и sprintf_s, ни _cprintf_s, ни _cwprintf_s не заменяют символы конца строки на сочетание символов конца строки и возврата каретки (CR-LF) при выводе.

Важное отличие заключается в том, что _cwprintf_s показывает символы юникода при использовании в Windows NT. В отличие от _cprintf_s, _cwprintf_s использует текущий языковой стандарт консоли.

Версии этих функций с суффиксом _l идентичны, за исключением того, что они используют переданный параметр языкового стандарта вместо текущего языкового стандарта.

Примечание о безопасностиПримечание по безопасности

Убедитесь, что format не является строкой, определяемой пользователем.

Как и небезопасные версии (см. раздел _cprintf, _cprintf_l, _cwprintf, _cwprintf_l), эти функции проверяют свои параметры и вызывают обработчик недопустимого параметра, как описано в Проверка параметров, если format является указателем на null. Эти функции отличаются от небезопасных версий тем, что сама строка формата также проверяется. При наличии любых неизвестных или неправильно сформированных спецификаторов формата эти функции создают исключение недопустимого параметра. Во всех случаях, если продолжение выполнения разрешено, функции возвращают -1 и устанавливают для errno значение EINVAL.

Универсальное текстовое сопоставление функций

Подпрограмма Tchar.h

_UNICODE и _MBCS не определены

_MBCS определено

_UNICODE определено

_tcprintf_s

_cprintf_s

_cprintf_s

_cwprintf_s

_tcprintf_s_l

_cprintf_s_l

_cprintf_s_l

_cwprintf_s_l

Требования

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

Обязательный заголовок

_cprintf_s,_cprintf_s_l

<conio.h>

_cwprintf_s, _cwprintf_s_l

<conio.h>

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

Библиотеки

Все версии библиотек времени выполнения C.

Пример

// crt_cprintf_s.c
// compile with: /c
// This program displays some variables to the console.


#include <conio.h>

int main( void )
{
   int      i = -16, h = 29;
   unsigned u = 62511;
   char     c = 'A';
   char     s[] = "Test";

   /* Note that console output does not translate \n as
    * standard output does. Use \r\n instead.
    */
   _cprintf_s( "%d  %.4x  %u  %c %s\r\n", i, h, u, c, s );
}

Output

-16  001d  62511  A Test

См. также

Ссылки

Ввод-вывод на консоль и порт

_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_l

printf_s, _printf_s_l, wprintf_s, _wprintf_s_l

sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l

vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l

Синтаксис описания формата: функции printf и wprintf