_cprintf
, , _cprintf_l
_cwprintf
_cwprintf_l
Форматируют и выводят данные на консоль. Доступны более безопасные версии; см. , _cwprintf_s
_cprintf_s_l
, _cwprintf_s_l
._cprintf_s
Внимание
Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
int _cprintf(
const char * format [, argument_list]
);
int _cprintf_l(
const char * format,
_locale_t locale [, argument_list]
);
int _cwprintf(
const wchar * format [, argument_list]
);
int _cwprintf_l(
const wchar * format,
_locale_t locale [, argument_list]
);
Параметры
format
Строка управления форматом.
argument_list
Необязательные параметры строки форматирования.
locale
Используемый языковой стандарт.
Возвращаемое значение
Число отображаемых символов.
Замечания
Эти функции форматируют и выводят последовательности символов и значений напрямую на консоль, используя функцию _putch
(_putwch
для _cwprintf
) для вывода символов. Каждый аргумент в argument_list
(если таковой) преобразуется и выводится в соответствии с соответствующей спецификацией формата.format
Аргумент format
использует синтаксис спецификации формата для функций printf и wprintf. fprintf
printf
В отличие от функций и sprintf
функций, _cprintf
и _cwprintf
не преобразуйте символы строкового канала в сочетания возвращаемой строки каретки (CR-LF) при выходе.
Важное различие заключается в том, что _cwprintf
при использовании в Windows символы Юникода отображаются. В отличие от функции _cprintf
, функция _cwprintf
использует текущие параметры языкового стандарта консоли.
Версии этих функций с суффиксом _l
идентичны, за исключением того, что они используют переданный параметр языкового стандарта вместо текущего языкового стандарта.
_cprintf
проверяет параметр format
. Если format
имеет значение NULL, функция вызывает обработчик недопустимых параметров, как описано в разделе "Проверка параметров". Если выполнение может быть продолжено, функция возвращает -1 и устанавливает errno
в значение EINVAL
.
Внимание
Убедитесь, что format
не является строкой, определяемой пользователем.
Начиная с Windows 10 версии 2004 (сборка 19041), printf
семейство функций выводит точно представленные числа с плавающей запятой в соответствии с правилами IEEE 754 для округления. В предыдущих версиях Windows точно представленные числа с плавающей запятой, заканчивающиеся на "5", всегда округлялись. IEEE 754 утверждает, что они должны округлиться до ближайшей даже цифры (также известной как "Округление банкира"). Например, оба printf("%1.0f", 1.5)
и printf("%1.0f", 2.5)
должны округлиться до 2. Ранее 1,5 округляет до 2 и 2,5 округления до 3. Это изменение влияет только на точно представленные числа. Например, 2.35 (который при представлении в памяти приближается к 2,3500000000000000008) продолжает округляется до 2,4. Округление, выполняемое этими функциями, теперь также учитывает режим округления с плавающей запятой, заданный fesetround
. Ранее округление всегда выбрало FE_TONEAREST
поведение. Это изменение влияет только на программы, созданные с помощью Visual Studio 2019 версии 16.2 и более поздних версий. Чтобы использовать устаревшее поведение округления с плавающей запятой, свяжите со legacy_stdio_float_rounding.obj
ссылкой.
Сопоставления подпрограмм универсального текста
Подпрограмма Tchar.h | _UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_tcprintf |
_cprintf |
_cprintf |
_cwprintf |
_tcprintf_l |
_cprintf_l |
_cprintf_l |
_cwprintf_l |
Требования
Маршрут | Обязательный заголовок |
---|---|
_cprintf , _cprintf_l |
<conio.h> |
_cwprintf , _cwprintf_l |
<conio.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_cprintf.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( "%d %.4x %u %c %s\r\n", i, h, u, c, s );
}
-16 001d 62511 A Test
См. также
Консоль и порт ввода-вывода
_cscanf
, , _cscanf_l
_cwscanf
_cwscanf_l
fprintf
, , _fprintf_l
fwprintf
_fwprintf_l
printf
, , _printf_l
wprintf
_wprintf_l
sprintf
, , _sprintf_l
swprintf
, _swprintf_l
__swprintf_l
vfprintf
, , _vfprintf_l
vfwprintf
_vfwprintf_l
_cprintf_s
, , _cprintf_s_l
_cwprintf_s
_cwprintf_s_l
_cprintf_p
, , _cprintf_p_l
_cwprintf_p
_cwprintf_p_l
Синтаксис спецификации форматирования: printf
и wprintf
функции