| wprintf | |||
Nomwprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - Formatage de chaînes de caractères larges.Synopsis#include <stdio.h>#include <wchar.h>
int wprintf (const wchar_t* format, ...);int fwprintf (FICHIER* flux, const
wchar_t* format, ...);int swprintf (wchar_t* wcs, size_t maxlen,
const wchar_t* format, ...);
#include <stdarg.h>
int vwprintf (const wchar_t* format, va_list args);int vfwprintf (FICHIER*
flux, const wchar_t* format, va_list args);int vswprintf (wchar_t* wcs,
size_t maxlen, const wchar_t* format, va_list args);
DescriptionLa famille de fonctions wprintf est l'équivalent pour les caractères multi-octets de la famille de fonctions printf. Elle réalise un formatage de la chaîne passée en argument.Les fonctions wprintf et vwprintf réalisent le traitement et la sortie de chaîne de caractères larges sur stdout. stdout ne doit pas être un périphérique spécial orienté caractères (voir la fonction fwide pour plus d'informations). Les fonctions fwprintf and vfwprintf réalisent le formatage de chaînes de caractères en vue d'une écriture dans le fichier flux. flux ne doit pas être un périphérique spécial orienté caractères (voir la fonction fwide pour plus d'informations). Les fonctions swprintf and vswprintf réalisent le formatage d'une chaîne de caractères longs avant de l'écrire dans un tableau de caractères larges. Le programmeur doit s'assurer qu'il y ait assez de place pour au moins maxlen caractères larges dans wcs. Ces fonctions se comportent de la même manière que les fonctions printf, vprintf, fprintf,vfprintf, sprintf et vsprintf, excepté les différences suivantes :
Le traitement des caractères de conversion c et s est différent:
Valeur RenvoyéeCes fonctions renvoient le nombre de caractères larges écrits, non compris le caractère nul terminal dans le cas des fonctions swprintf et vswprintf. Elles renvoient -1 en cas d'erreur.Conforme aISO/ANSI C, UNIX98Voir Aussiprintf(3) , fprintf(3) , snprintf(3) , fputwc(3) , fwide(3) , wscanf(3)NotesLe comportement de wprintf et compagnie dépend de la catégorie LC_CTYPE de la locale courante.Si la chaîne format contient des caractères larges non ASCII, le programme ne fonctionnera correctement que si la catégorie LC_CTYPE de la locale courrante lors de l'exécution est la même que lors de la compilation. En effet, la représentation de wchar_t dépende de l'architecture et de la locale. (La LibC de GNU représente les caractères larges à l'aide de leurs codes Unicode (ISO-10646), mais les autres architectures ne font pas de mêmes. De plus, l'utilisation des noms de caractères universaux de la norme ISO C99 (de la forme \unnnn) ne résoud pas ce problème.). Aussi, la chaîne format ne devraît être constitué que de caractères larges dans les programmes internationalisés, ou alors elle doit être construite à l'éxécution à l'aie de manière internationalisée (en utilisant gettext ou iconv, suivi de mbstowcs).
TraductionThierry Vignaud <tvignaud@mandrakesoft.com>, 1999
|