strfmon
Section: C Library Functions (3)
Updated: 5 février 2023
Index
Return to Main Contents
NOM
strfmon, strfmon_l - Convertir des valeurs monétaires en chaînes de
caractères
BIBLIOTHÈQUE
Bibliothèque C standard (libc, -lc)
SYNOPSIS
#include <monetary.h>
ssize_t strfmon(char s[restrict .max], size_t max,
const char *restrict format, ...);
ssize_t strfmon_l(char s[restrict .max], size_t max, locale_t locale,
const char *restrict format, ...);
DESCRIPTION
La fonction strfmon() met en forme les valeurs monétaires transmises en
fonction de la locale courante et 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.
La fonction strfmon_l() réalise la même fonction mais se base sur les
paramètres régionaux indiqués par locale. Le comportement de
strfmon_l() est non défini si locale est l’objet de paramètres
régionaux LC_GLOBAL_LOCALE (consultez duplocale(3)) ou n’est pas un
identifiant d’objet de paramètres régionaux valable.
Ordinary characters in format are copied to s without conversion.
Conversion specifiers are introduced by a '%' character.
Immediately following it there can be zero or more of the following flags:
- =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.
- ha
-
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 symbole 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 « # » suivie
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 « . » suivie
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 :
- %
-
(In this case, the entire specification must be exactly "%%".) Put a
'%' character in the result string.
- 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.
VALEUR RENVOYÉE
La fonction strfmon() renvoie le nombre de caractères placés dans la
chaîne s, sans compter le caractère NULL final, à condition que tout
tienne dans le tampon fourni. Sinon, il remplit errno avec la valeur
E2BIG et renvoie -1. Le contenu de la chaîne est indéfini dans ce cas.
ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface | Attribut | Valeur
|
strfmon()
| Sécurité des threads | MT-Safe locale
|
strfmon_l()
| Sécurité des threads | MT-Safe
|
STANDARDS
POSIX.1-2001, POSIX.1-2008.
EXEMPLES
L'appel
strfmon(buf, sizeof(buf), "[%ha=*#6n] [%=*#6i]",
1234.567, 1234.567);
affiche
[€ **1234,57] [EUR **1 234,57]
dans la locale nl_NL. Les locales de_DE, de_CH, en_AU et
en_GB donnent pour résultat
[ **1234,57 €] [ **1.234,57 EUR]
[ Fr. **1234.57] [ CHF **1'234.57]
[ $**1234.57] [ AUD**1,234.57]
[ £**1234.57] [ GBP**1,234.57]
VOIR AUSSI
duplocale(3), setlocale(3), sprintf(3), locale(7)
TRADUCTION
La traduction française de cette page de manuel a été créée par
Christophe Blaess <https://www.blaess.fr/christophe/>,
Stéphan Rafin <stephan.rafin@laposte.net>,
Thierry Vignaud <tvignaud@mandriva.com>,
François Micaux,
Alain Portal <aportal@univ-montp2.fr>,
Jean-Philippe Guérard <fevrier@tigreraye.org>,
Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>,
Julien Cristau <jcristau@debian.org>,
Thomas Huriaux <thomas.huriaux@gmail.com>,
Nicolas François <nicolas.francois@centraliens.net>,
Florentin Duneau <fduneau@gmail.com>,
Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,
Denis Barbier <barbier@debian.org>,
David Prévot <david@tilapin.org>
et
Grégoire Scano <gregoire.scano@malloc.fr>
Cette traduction est une documentation libre ; veuillez vous reporter à la
GNU General Public License version 3
concernant les conditions de copie et
de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
Index
- NOM
-
- BIBLIOTHÈQUE
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ATTRIBUTS
-
- STANDARDS
-
- EXEMPLES
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 04:12:43 GMT, May 18, 2024