La fonction swprintf () en C ++ est utilisée pour écrire une chaîne large formatée dans un tampon de chaîne large.
La fonction swprintf () est définie dans le fichier d'en-tête.
prototype swprintf ()
int swprintf (tampon wchar_t *, taille size_t, format const wchar_t *,…);
La fonction swprintf () écrit la chaîne large pointée par format dans le tampon. Le nombre maximum de caractères pouvant être écrits est (taille-1).
Une fois les caractères écrits, un caractère large nul de fin est ajouté.
Le format de chaîne large peut contenir des spécificateurs de format commençant par% qui sont remplacés par les valeurs des variables qui sont passées à la fonction swprintf () comme arguments supplémentaires.
Paramètres de swprintf ()
- buffer: pointeur vers le buffer de chaîne pour écrire le résultat.
- size: spécifiez le nombre maximal de caractères à écrire dans la mémoire tampon, qui est de taille 1.
- format: pointeur vers une chaîne large terminée par null qui est écrite dans stdout. Il se compose de caractères larges avec des spécificateurs de format facultatifs commençant par%. Les spécificateurs de format sont remplacés par les valeurs des variables respectives qui suivent le format.
Le spécificateur de format comprend les parties suivantes:- Un signe% en tête
- Indicateurs: un ou plusieurs indicateurs facultatifs qui modifient le comportement de conversion.
- -: Justifiez à gauche le résultat dans le champ. Par défaut, il est justifié à droite.
- +: Le signe du résultat est attaché au début de la valeur, même pour les résultats positifs.
- Espace: s'il n'y a pas de signe, un espace est attaché au début du résultat.
- #: Une autre forme de conversion est effectuée.
- 0: Il est utilisé pour les nombres entiers et flottants. Les zéros non significatifs sont utilisés pour compléter les nombres au lieu de l'espace.
- Largeur: valeur facultative * ou entière utilisée pour spécifier le champ de largeur minimale.
- Précision: un champ facultatif composé d'un. suivi de * ou entier ou rien pour spécifier la précision.
- Longueur: un modificateur de longueur facultatif qui spécifie la taille de l'argument.
- Spécificateur: spécificateur de format de conversion. Les spécificateurs de format disponibles sont les suivants:
Spécificateur de format La description % Impressions% c Écrit un seul caractère s Écrit une chaîne de caractères d ou i Convertit un entier signé en représentation décimale o Convertit un entier non signé en représentation octale X ou x Convertit un entier non signé en représentation hexadécimale u Convertit un entier non signé en représentation décimale F ou f Convertit un nombre à virgule flottante en représentation décimale E ou e Convertit un nombre à virgule flottante en notation d'exposant décimal A ou a Convertit un nombre à virgule flottante en exposant hexadécimal G ou g Convertit un nombre à virgule flottante en notation d'exposant décimal ou décimal n Renvoie le nombre de caractères écrits jusqu'à présent par cet appel à la fonction. Le résultat est écrit sur la valeur pointée par l'argument p Écrit une séquence de caractères définie par l'implémentation définissant un pointeur.
Ainsi, le format général du spécificateur de format est:Spécificateur% (flags) (width) (. precision) (length)
- …: Autres arguments supplémentaires spécifiant les données à écrire. Ils se produisent dans une séquence selon le spécificateur de format.
swprintf () Valeur de retour
- En cas de succès, la fonction swprintf () renvoie le nombre de caractères écrits à l'exclusion du caractère large nul de fin.
- Si une erreur de codage s'est produite ou si le nombre de caractères à générer était égal ou supérieur à la taille, une valeur négative est renvoyée.
Exemple: comment fonctionne la fonction swprintf ()?
#include #include #include #include using namespace std; int main() ( wchar_t hebrew_str() = L"u05D0 u05D1 u05E1 u05D3 u05EA"; wchar_t buffer(100); setlocale(LC_ALL, "en_US.UTF-8"); swprintf(buffer, sizeof(hebrew_str), L"%ls", hebrew_str); wcout << L"Some hebrew letters" << buffer << endl; return 0; )
Lorsque vous exécutez le programme, ce qui suit sera écrit dans example.txt:
Quelques lettres hébraïques א ב ס ד ת