_printf_p
, _printf_p_l
, _wprintf_p
, _wprintf_p_l
Imprime la sortie mise en forme dans le flux de sortie standard et active la spécification de l’ordre dans lequel les paramètres sont utilisés dans la chaîne de format.
Syntaxe
int _printf_p(
const char *format [,
argument]...
);
int _printf_p_l(
const char *format,
_locale_t locale [,
argument]...
);
int _wprintf_p(
const wchar_t *format [,
argument]...
);
int _wprintf_p_l(
const wchar_t *format,
_locale_t locale [,
argument]...
);
Paramètres
format
Contrôle de format.
argument
Arguments facultatifs.
locale
Paramètres régionaux à utiliser.
Valeur retournée
Retourne le nombre de caractères imprimés ou une valeur négative si une erreur se produit.
Notes
La fonction _printf_p
met en forme et imprime une série de caractères et de valeurs dans le flux de sortie standard, stdout
. Si des arguments suivent la chaîne format
, la chaîne format
doit contenir des spécifications qui déterminent le format de sortie des arguments (consultez Paramètres positionnels printf_p).
La différence entre _printf_p
et printf_s
vient du fait que _printf_p
prend en charge les paramètres positionnels, ce qui vous permet de spécifier l'ordre dans lequel les arguments sont utilisés dans la chaîne de format. Pour plus d’informations, consultez Paramètres positionnels printf_p.
_wprintf_p
est la version à caractères larges de _printf_p
; ces fonctions se comportent de la même manière si le flux est ouvert en mode ANSI. _printf_p
ne prend pas en charge la sortie vers un flux UNICODE pour l’instant.
Les versions de ces fonctions avec le suffixe _l
sont identiques, sauf qu'elles utilisent les paramètres régionaux passés au lieu des paramètres régionaux du thread actuel.
Important
Assurez-vous que format
n'est pas une chaîne définie par l'utilisateur.
Si format
ou argument
sont NULL
, ou si la chaîne de format contient des caractères de mise en forme non valides et _printf_p
_wprintf_p
que les fonctions appellent un gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à se poursuivre, la fonction retourne -1 et définit errno
avec la valeur EINVAL
.
Mappages de routine de texte générique
Routine Tchar.h | _UNICODE et _MBCS non défini |
_MBCS Défini |
_UNICODE Défini |
---|---|---|---|
_tprintf_p |
_printf_p |
_printf_p |
_wprintf_p |
_tprintf_p_l |
_printf_p_l |
_printf_p_l |
_wprintf_p_l |
Spécifications
Routine | En-tête requis |
---|---|
_printf_p , _printf_p_l |
<stdio.h> |
_wprintf_p , _wprintf_p_l |
<stdio.h> ou <wchar.h> |
La console n’est pas prise en charge dans les applications plateforme Windows universelle (UWP). Les handles de flux standard associés à la console, stdin
et stdout
stderr
doivent être redirigés avant que les fonctions d’exécution C puissent les utiliser dans les applications UWP. Pour plus d’informations sur la compatibilité, consultez Compatibility.
Important
À compter de Windows 10 version 2004 (build 19041), la printf
famille de fonctions imprime exactement des nombres à virgule flottante pouvant être représentés en fonction des règles IEEE 754 pour l’arrondi. Dans les versions précédentes de Windows, les nombres à virgule flottante qui se terminent exactement par « 5 » sont toujours arrondis. IEEE 754 indique qu’ils doivent arrondir au chiffre pair le plus proche (également appelé « Arrondi du banquier »). Par exemple, les deux printf("%1.0f", 1.5)
et printf("%1.0f", 2.5)
doivent arrondir à 2. Auparavant, 1,5 arrondirait à 2 et 2,5 arrondirait à 3. Cette modification affecte uniquement les nombres représentant exactement. Par exemple, la version 2.35 (qui, lorsqu’elle est représentée en mémoire, est plus proche de 2,350000000000008) continue d’arrondir jusqu’à 2,4. L’arrondi effectué par ces fonctions respecte désormais également le mode d’arrondi à virgule flottante défini par fesetround
. Auparavant, l’arrondi a toujours choisi FE_TONEAREST
le comportement. Cette modification affecte uniquement les programmes générés à l’aide de Visual Studio 2019 version 16.2 et ultérieures. Pour utiliser le comportement d’arrondi à virgule flottante héritée, liez avec legacy_stdio_float_rounding.obj
.
Exemple
// crt_printf_p.c
// This program uses the _printf_p and _wprintf_p
// functions to choose the order in which parameters
// are used.
#include <stdio.h>
int main( void )
{
// Positional arguments
_printf_p( "Specifying the order: %2$s %3$s %1$s %4$s %5$s.\n",
"little", "I'm", "a", "tea", "pot");
// Resume arguments
_wprintf_p( L"Reusing arguments: %1$d %1$d %1$d %1$d\n", 10);
// Width argument
_printf_p("Width specifiers: %1$*2$s", "Hello\n", 10);
}
Specifying the order: I'm a little tea pot.
Reusing arguments: 10 10 10 10
Width specifiers: Hello
Voir aussi
Prise en charge mathématique et à virgule flottante
E/S de flux
Paramètres régionaux
fopen
, _wfopen
_fprintf_p
, _fprintf_p_l
, _fwprintf_p
, _fwprintf_p_l
fprintf
, _fprintf_l
, fwprintf
, _fwprintf_l
fprintf_s
, _fprintf_s_l
, fwprintf_s
, _fwprintf_s_l
scanf
, _scanf_l
, wscanf
, _wscanf_l
scanf_s
, _scanf_s_l
, wscanf_s
, _wscanf_s_l
_sprintf_p
, _sprintf_p_l
, _swprintf_p
, _swprintf_p_l
sprintf
, _sprintf_l
, swprintf
, _swprintf_l
, __swprintf_l
sprintf_s
, _sprintf_s_l
, swprintf_s
, _swprintf_s_l
vprintf
, fonctions
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de l’année 2024, nous abandonnerons progressivement le mécanisme de retour d’information GitHub Issues pour le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultez :Soumettre et afficher des commentaires pour