printf, _printf_l, wprintf, _wprintf_lprintf, _printf_l, wprintf, _wprintf_l

Imprime une sortie mise en forme dans le flux de sortie standard.Prints formatted output to the standard output stream. Il existe des versions plus sécurisées de ces fonctions. Consultez printf_s, _printf_s_l, wprintf_s, _wprintf_s_l.More secure versions of these functions are available; see printf_s, _printf_s_l, wprintf_s, _wprintf_s_l.

SyntaxeSyntax

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]...
);

ParamètresParameters

formatformat
Contrôle de format.Format control.

argumentargument
Arguments facultatifs.Optional arguments.

localelocale
Paramètres régionaux à utiliser.The locale to use.

Valeur de retourReturn Value

Retourne le nombre de caractères imprimés ou une valeur négative si une erreur se produit.Returns the number of characters printed, or a negative value if an error occurs. Si format est NULL, le Gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre.If format is NULL, the invalid parameter handler is invoked, as described in Parameter Validation. Si l’exécution est autorisée à se poursuivre, la fonction retourne -1 et affecte errno à EINVAL.If execution is allowed to continue, the function returns -1 and sets errno to EINVAL. Si EOF (0xFFFF) est rencontré dans argument, la fonction retourne -1.If EOF (0xFFFF) is encountered in argument, the function returns -1.

Pour plus d’informations sur errno et les codes d’erreur, consultez _doserrno, errno, _sys_errlist et _sys_nerr.For information on errno and error codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.

NotesRemarks

Le printf fonction met en forme et imprime une série de caractères et de valeurs dans le flux de sortie standard, stdout.The printf function formats and prints a series of characters and values to the standard output stream, stdout. Si des arguments suivent la format chaîne, le format chaîne doit contenir des spécifications qui déterminent le format de sortie pour les arguments.If arguments follow the format string, the format string must contain specifications that determine the output format for the arguments. printf et fprintf ont un comportement identique, sauf que printf écrit la sortie dans stdout plutôt que vers une destination de type fichier .printf and fprintf behave identically except that printf writes output to stdout rather than to a destination of type FILE.

wprintf est une version à caractères larges de printf; format est une chaîne de caractères larges.wprintf is a wide-character version of printf; format is a wide-character string. wprintf et printf se comportent comme si le flux est ouvert en mode ANSI.wprintf and printf behave identically if the stream is opened in ANSI mode. printf ne prend pas en charge sortie vers un flux UNICODE.printf does not currently support output into a UNICODE stream.

Les versions de ces fonctions avec le _l suffixe sont identiques, sauf qu’ils utilisent les paramètres régionaux passés au lieu des paramètres régionaux du thread actuel.The versions of these functions with the _l suffix are identical except that they use the locale parameter passed in instead of the current thread locale.

Mappages de routines de texte génériqueGeneric-Text Routine Mappings

Routine TCHAR.HTCHAR.H routine _UNICODE et _MBCS non définis_UNICODE & _MBCS not defined _MBCS défini_MBCS defined _unicode défini_unicode defined
_tprintf_tprintf printfprintf printfprintf wprintfwprintf

Le format argument se compose de caractères ordinaires, les séquences d’échappement, et (si des arguments suivent format) spécifications de format.The format argument consists of ordinary characters, escape sequences, and (if arguments follow format) format specifications. Les caractères ordinaires et les séquences d’échappement sont copiés vers stdout dans leur ordre d’apparition.The ordinary characters and escape sequences are copied to stdout in order of their appearance. Par exemple, la ligne suivante :For example, the line:

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

génère cette sortie :produces the output:

Line one
        Line two

Spécifications de format commencent toujours par un signe de pourcentage (%) et sont lues de gauche à droite.Format specifications always begin with a percent sign (%) and are read left to right. Lorsque printf rencontre la première spécification de format (le cas échéant), il convertit la valeur du premier argument après format et sort en conséquence.When printf encounters the first format specification (if any), it converts the value of the first argument after format and outputs it accordingly. La deuxième spécification de format entraîne la conversion et la sortie du deuxième argument, et ainsi de suite.The second format specification causes the second argument to be converted and output, and so on. S’il y a plus d’arguments que de spécifications de format, les arguments en trop sont ignorés.If there are more arguments than there are format specifications, the extra arguments are ignored. Les résultats sont indéfinis s’il n’y a pas assez d’arguments pour toutes les spécifications de format.The results are undefined if there are not enough arguments for all the format specifications.

Important

Assurez-vous que format n'est pas une chaîne définie par l'utilisateur.Ensure that format is not a user-defined string.

Mappages de routines de texte génériqueGeneric-Text Routine Mappings

Routine Tchar.hTchar.h routine _UNICODE et _MBCS non définis_UNICODE and _MBCS not defined _MBCS défini_MBCS defined _UNICODE défini_UNICODE defined
_tprintf_tprintf printfprintf printfprintf wprintfwprintf
_tprintf_l_tprintf_l _printf_l_printf_l _printf_l_printf_l _wprintf_l_wprintf_l

Configuration requiseRequirements

RoutineRoutine En-tête requisRequired header
printf, _printf_lprintf, _printf_l <stdio.h><stdio.h>
wprintf, _wprintf_lwprintf, _wprintf_l <stdio.h> ou <wchar.h><stdio.h> or <wchar.h>

La console n’est pas pris en charge dans les applications Universal Windows Platform (UWP).The console is not supported in Universal Windows Platform (UWP) apps. Les handles de flux standard qui sont associés à la console, stdin, stdout, et stderr, doivent être redirigés pour que les fonctions runtime C de les utiliser dans les applications UWP .The standard stream handles that are associated with the console, stdin, stdout, and stderr, must be redirected before C run-time functions can use them in UWP apps. Pour plus d'informations sur la compatibilité, voir Compatibilité.For additional compatibility information, see Compatibility.

ExempleExample

// 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);
}

Résultat de l'exempleSample Output

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

Voir aussiSee also

Prise en charge de la virgule flottanteFloating-Point Support
E/S de fluxStream I/O
Paramètres régionauxLocale
fopen, _wfopenfopen, _wfopen
_fprintf_p, _fprintf_p_l, _fwprintf_p, _fwprintf_p_l_fprintf_p, _fprintf_p_l, _fwprintf_p, _fwprintf_p_l
scanf, _scanf_l, wscanf, _wscanf_lscanf, _scanf_l, wscanf, _wscanf_l
sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_lsprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l
vprintf, fonctionsvprintf Functions
_set_output_format_set_output_format