La fonction
strfmon()
met en forme les valeurs transmises, en
fonction des spécifications de la chaîne de
format
et place le résultat dans la chaîne de caractère
s
de taille
max.
Les caractères ordinaires de
format
sont copiés dans
s
sans conversion.
Les indicateurs de conversion sont introduits par un caractère « % ».
Immédiatement à sa suite, il peut y avoir zéro
ou plusieurs drapeaux parmi les suivants :
-
- =f
-
Le caractère unique
f
sert comme caractère numérique de remplissage
(à utiliser avec une précision à gauche, voir plus bas).
Sans indication, il s'agit du caractère espace.
-
- ^
-
Ne pas utiliser les caractères de regroupement (par milliers par exemple)
qui peuvent être définis pour la localisation en cours.
Par défaut, le groupement est actif.
-
- ( or +
-
L'attribut « ( » indique que les valeurs négatives
doivent être encadrées entre parenthèses.
L'attribut « + » indique que le signe doit être traité
de la manière par défaut, c'est-à-dire les valeurs précédées
de l'indication locale de signe.
Par exemple, rien pour les valeurs
positives et « - » pour les négatives.
-
- !
-
Omettre le signe monétaire.
-
- -
-
Justifier tous les champs à gauche.
Par défaut, la justification est à droite.
Ensuite, peut venir un champ de largeur : un chiffre décimal
indiquant la largeur minimale en octets.
Par défaut, elle vaut 0.
Un résultat plus petit que cette largeur est complété avec des espaces
(à gauche à moins que la justification soit à gauche).
Ensuite, il peut y avoir une précision à gauche de la forme « # »
suivi par une chaîne de chiffres décimaux.
Si le nombre de chiffres à gauche de la virgule est inférieur
à cette valeur, la représentation est complétée à gauche
avec le caractère de remplissage.
Les caractères de groupement ne sont pas comptés dans la largeur du champ.
Ensuite, il peut y avoir une précision à droite de la forme « . »
suivi par une chaîne de chiffres décimaux.
La valeur est arrondie à ce nombre de décimales
avant d'être mise en forme.
La valeur par défaut est précisée dans les champs
frac_digits
et
int_frac_digits
de la localisation en cours.
Si la précision à droite est 0, aucun symbole décimal n'est affiché.
(Le symbole décimal est déterminé par
LC_MONETARY,
et peut différer de celui indiqué dans
LC_NUMERIC.)
Finalement, la spécification de conversion doit se terminer
par un caractère de conversion.
Les trois caractères disponibles sont :
-
- %
-
(Dans ce cas, la spécification entière doit être exactement « %% »).
Placer un caractère « % » dans la chaîne de résultat.
-
- i
-
Un argument de type
double
est converti en utilisant les formats internationaux des monnaies
dans la localisation en cours.
-
- n
-
Un argument de type
double
est converti en utilisant les formats nationaux des monnaies
dans la localisation en cours.