printf, _printf_l, wprintf, _wprintf_l

 

Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.

Печатает Форматированные выходные данные в стандартный выходной поток. Доступны более безопасные версии этих функций; в разделе printf_s _printf_s_l, wprintf_s, _wprintf_s_l.

int printf(  
   const char *format [,  
   argument]...   
);  
int _printf_l(  
   const char *format,  
   locale_t locale [,  
   argument]...   
);  
int wprintf(  
   const wchar_t *format [,  
   argument]...   
);  
int _wprintf_l(  
   const wchar_t *format,  
   locale_t locale [,  
   argument]...   
);  

Параметры

format
Форматирование элемента управления.

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

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

Возвращает число выведенных символов или отрицательное значение, если произошла ошибка. Если formatNULL, вызывается обработчик недопустимого параметра, как описано в разделе проверки параметров. Если выполнение может быть продолжено, функция возвращает -1 и устанавливает errno в значение EINVAL. Если EOF (0xFFFF) обнаружена в argument, функция возвращает значение -1.

Сведения о errno и коды ошибок в разделе _doserrno, errno, _sys_errlist и _sys_nerr.

printf Функция форматирует и выводит последовательность символов и значений в стандартный выходной поток stdout. Если следовать аргументы format строку, format строка должна содержать спецификации, которые определяют формат вывода для аргументов. printfи fprintf ведут себя одинаково, за исключением того, что printf записывает вывод в stdout , а не для назначения типа FILE.

wprintf— это двухбайтовая версия printf; format представляет собой строку расширенных символов. wprintf и printf ведут себя одинаково, если поток открыт в режиме ANSI. printfне поддерживает выходные данные в поток в кодировке Юникод.

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

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

Подпрограмма TCHAR.H_UNICODE и _MBCS не определены_MBCS определено_UNICODE определено
_tprintfprintfprintfwprintf

format Аргумент состоит из обычных символов, escape-последовательности и (если следуют аргументы format) спецификации формата. Обычные символы и escape-последовательности копируются stdout в порядке их следования. Например следующая строка:

printf("Line one\n\t\tLine two\n");   

Вывод:

Line one  
        Line two  

Спецификации формата всегда начинаются со знака процента (%) и читаются слева направо. Когда printf обнаружении первой спецификации формата (если таковые имеются), он преобразует значение первого аргумента после format и выводит его соответствующим образом. Вторая спецификация формата приводит второй аргумент преобразуются и вывода, и т. д. При наличии нескольких аргументов, чем спецификации формата, лишние аргументы учитываются. Если аргументов недостаточно для спецификации формата не дают неопределенные результаты.

System_CAPS_ICON_important.jpg Важно

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

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

Подпрограмма Tchar.h_UNICODE и _MBCS не определены_MBCS определено_UNICODE определено
_tprintfprintfprintfwprintf
_tprintf_l_printf_l_printf_l_wprintf_l
ПодпрограммаОбязательный заголовок
printf, _printf_l<stdio.h>
wprintf, _wprintf_l<stdio.h> или <wchar.h>

Консоль не поддерживается в приложениях Магазин Windows 8.x. Стандартные дескрипторы потока, связанные с консолью, stdin, stdout и stderr, необходимо перенаправить, чтобы функции C времени выполнения могли использовать их в приложениях Магазин Windows 8.x. Дополнительные сведения о совместимости см. в разделе Совместимость.

// crt_printf.c  
// This program uses the printf and wprintf functions  
// to produce formatted output.  
  
#include <stdio.h>  
  
int main( void )  
{  
   char     ch = 'h',   
            *string = "computer";  
   wchar_t  wch = L'w',   
            *wstring = L"Unicode";  
   int      count = -9234;  
   double   fp = 251.7366;  
  
   // Display integers  
   printf( "Integer formats:\n"  
           "   Decimal: %d  Justified: %.6d  "  
           "Unsigned: %u\n",  
           count, count, count, count );  
  
   // Display decimals  
   printf( "Decimal %d as:\n   Hex: %Xh  "  
           "C hex: 0x%x  Octal: %o\n",  
            count, count, count, count );  
  
   // Display in different radixes  
   printf( "Digits 10 equal:\n   Hex: %i  "  
           "Octal: %i  Decimal: %i\n",  
            0x10, 010, 10 );  
  
   // Display characters  
   printf("Characters in field (1):\n"  
          "%10c%5hc%5C%5lc\n",  
          ch, ch, wch, wch);  
   wprintf(L"Characters in field (2):\n"  
           L"%10C%5hc%5c%5lc\n",  
           ch, ch, wch, wch);  
  
   // Display strings  
   printf("Strings in field (1):\n%25s\n"  
          "%25.4hs\n   %S%25.3ls\n",  
          string, string, wstring, wstring);  
   wprintf(L"Strings in field (2):\n%25S\n"  
           L"%25.4hs\n   %s%25.3ls\n",  
           string, string, wstring, wstring);  
  
   // Display real numbers  
   printf("Real numbers:\n   %f %.2f %e %E\n",  
          fp, fp, fp, fp );  
  
   // Display pointer  
   printf( "\nAddress as:   %p\n", &count);  
}  

Integer formats:  
   Decimal: -9234  Justified: -009234  Unsigned: 4294958062  
Decimal -9234 as:  
   Hex: FFFFDBEEh  C hex: 0xffffdbee  Octal: 37777755756  
Digits 10 equal:  
   Hex: 16  Octal: 8  Decimal: 10  
Characters in field (1):  
         h    h    w    w  
Characters in field (2):  
         h    h    w    w  
Strings in field (1):  
                 computer  
                     comp  
   Unicode                      Uni  
Strings in field (2):  
                 computer  
                     comp  
   Unicode                      Uni  
Real numbers:  
   251.736600 251.74 2.517366e+002 2.517366E+002  
  
Address as:   0012FF3C  

Числа с плавающей запятой
Поток ввода-вывода
Языковой стандарт
fopen, _wfopen
_fprintf_p, _fprintf_p_l, _fwprintf_p, _fwprintf_p_l
scanf, _scanf_l, wscanf, _wscanf_l
sprintf _sprintf_l, swprintf, _swprintf_l, __swprintf_l
Функции vprintf
_set_output_format

Показ: