Namespaces
Variants

lconv

From cppreference.net
Défini dans l'en-tête <locale.h>
struct lconv ;

La structure lconv contient les règles de formatage numérique et monétaire telles que définies par une locale C. Les objets de cette structure peuvent être obtenus avec localeconv . Les membres de lconv sont des valeurs de type char et de type char * . Chaque membre char * sauf decimal_point peut pointer vers un caractère nul (c'est-à-dire vers une chaîne C vide). Les membres de type char sont tous des nombres non négatifs, dont chacun peut être CHAR_MAX si la valeur correspondante n'est pas disponible dans la locale C actuelle.

Table des matières

Objets membres

Paramètres de formatage numérique non monétaire

char* decimal_point
le caractère utilisé comme séparateur décimal
(objet membre public)
char* thousands_sep
le caractère utilisé pour séparer les groupes de chiffres avant le séparateur décimal
(objet membre public)
char* grouping
une chaîne dont les éléments indiquent les tailles des groupes de chiffres
(objet membre public)

Paramètres de formatage numérique monétaire

char* mon_decimal_point
le caractère utilisé comme séparateur décimal
(objet membre public)
char* mon_thousands_sep
le caractère utilisé pour séparer les groupes de chiffres avant le séparateur décimal
(objet membre public)
char* mon_grouping
une chaîne dont les éléments indiquent la taille des groupes de chiffres
(objet membre public)
char* positive_sign
une chaîne utilisée pour indiquer une quantité monétaire non négative
(objet membre public)
char* negative_sign
une chaîne utilisée pour indiquer une quantité monétaire négative
(objet membre public)

Paramètres de formatage numérique monétaire local

char* currency_symbol
le symbole utilisé pour la monnaie dans la locale C actuelle
(objet membre public)
char frac_digits
le nombre de chiffres après la virgule décimale à afficher dans une quantité monétaire
(objet membre public)
char p_cs_precedes
1 si currency_symbol est placé avant une valeur non négative, 0 si après
(objet membre public)
char n_cs_precedes
1 si currency_symbol est placé avant une valeur négative, 0 si après
(objet membre public)
char p_sep_by_space
indique la séparation entre currency_symbol , positive_sign et la valeur monétaire non négative
(objet membre public)
char n_sep_by_space
indique la séparation entre currency_symbol , negative_sign et la valeur monétaire négative
(objet membre public)
char p_sign_posn
indique la position de positive_sign dans une valeur monétaire non négative
(objet membre public)
char n_sign_posn
indique la position de negative_sign dans une valeur monétaire négative
(objet membre public)

Paramètres de formatage numérique monétaire international

char* int_curr_symbol
la chaîne utilisée comme nom de devise internationale dans les paramètres régionaux C actuels
(objet membre public)
char int_frac_digits
le nombre de chiffres après la virgule décimale à afficher dans une quantité monétaire internationale
(objet membre public)
char int_p_cs_precedes
(C99)
1 si int_curr_symbol est placé avant une valeur monétaire internationale non négative, 0 si après
(objet membre public)
char int_n_cs_precedes
(C99)
1 si int_curr_symbol est placé avant une valeur monétaire internationale négative, 0 si après
(objet membre public)
char int_p_sep_by_space
(C99)
indique la séparation entre int_curr_symbol , positive_sign et la valeur monétaire internationale non négative
(objet membre public)
char int_n_sep_by_space
(C99)
indique la séparation entre int_curr_symbol , negative_sign et la valeur monétaire internationale négative
(objet membre public)
char int_p_sign_posn
(C99)
indique la position de positive_sign dans une valeur monétaire internationale non négative
(objet membre public)
char int_n_sign_posn
(C99)
indique la position de negative_sign dans une valeur monétaire internationale négative
(objet membre public)

Les caractères des chaînes C pointées par grouping et mon_grouping sont interprétés selon leurs valeurs numériques. Lorsque le caractère de fin ' \0 ' est rencontré, la dernière valeur vue est supposée se répéter pour le reste des chiffres. Si CHAR_MAX est rencontré, aucun chiffre supplémentaire n'est groupé. Le groupement typique de trois chiffres à la fois est " \003 " .

Les valeurs de p_sep_by_space , n_sep_by_space , int_p_sep_by_space , int_n_sep_by_space sont interprétées comme suit :

0 aucun espace ne sépare le symbole monétaire et la valeur
1 le signe reste collé au symbole monétaire, la valeur est séparée par un espace
2 le signe reste collé à la valeur. Le symbole monétaire est séparé par un espace

Les valeurs de p_sign_posn , n_sign_posn , int_p_sign_posn , int_n_sign_posn sont interprétées comme suit :

0 des parenthèses autour de la valeur et du symbole monétaire sont utilisées pour représenter le signe
1 signe avant la valeur et le symbole monétaire
2 signe après la valeur et le symbole monétaire
3 signe avant le symbole monétaire
4 signe après le symbole monétaire

Exemple

#include <locale.h>
#include <stdio.h>
int main(void)
{
    setlocale(LC_ALL, "ja_JP.UTF-8");
    struct lconv* lc = localeconv();
    printf("Japanese currency symbol: %s(%s)\n", lc->currency_symbol, lc->int_curr_symbol);
}

Sortie possible :

Japanese currency symbol: ¥(JPY )

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.11/2 Localisation <locale.h> (p: À DÉTERMINER)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.11/2 Localisation <locale.h> (p: À DÉTERMINER)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.11/2 Localisation <locale.h> (p: 223)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.11/2 Localisation <locale.h> (p : 204)
  • Norme C89/C90 (ISO/CEI 9899:1990) :
  • 4.4 LOCALISATION <locale.h>

Voir aussi

interroge les détails de formatage numérique et monétaire de la locale actuelle
(fonction)