_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