namespace std {
struct lconv;
}
概要
現在のロケールにおける、数値と通貨の書式設定の情報をまとめた構造体。
localeconv()関数によって、この構造体へのポインタを取得する。メンバの並び順は規定されておらず、処理系によって追加のメンバをもつこともある。
文字列型のメンバが空文字列""である場合、およびchar型のメンバがCHAR_MAXである場合は、その項目が現在のロケールでは利用できないことを表す。
メンバ変数
数値の書式(LC_NUMERICカテゴリ)
| 名前 | 型 | 説明 |
|---|---|---|
decimal_point |
char* |
小数点として使用する文字列 |
thousands_sep |
char* |
整数部の桁区切りとして使用する文字列 |
grouping |
char* |
桁区切りの間隔。各要素がchar型の数値であり、下位の桁から順に何桁ごとに区切るかを表す |
通貨の書式(LC_MONETARYカテゴリ)
| 名前 | 型 | 説明 |
|---|---|---|
mon_decimal_point |
char* |
通貨表記での小数点として使用する文字列 |
mon_thousands_sep |
char* |
通貨表記での桁区切りとして使用する文字列 |
mon_grouping |
char* |
通貨表記での桁区切りの間隔 |
positive_sign |
char* |
非負の通貨表記に使用する符号 |
negative_sign |
char* |
負の通貨表記に使用する符号 |
currency_symbol |
char* |
ローカルの通貨記号 |
frac_digits |
char |
ローカルの通貨表記での小数点以下の桁数 |
p_cs_precedes |
char |
非負の値で、通貨記号が数値の前に置かれるなら1、後ろなら0 |
n_cs_precedes |
char |
負の値で、通貨記号が数値の前に置かれるなら1、後ろなら0 |
p_sep_by_space |
char |
非負の値で、通貨記号と数値の間の空白の有無を表す |
n_sep_by_space |
char |
負の値で、通貨記号と数値の間の空白の有無を表す |
p_sign_posn |
char |
非負の値での符号の位置 |
n_sign_posn |
char |
負の値での符号の位置 |
int_curr_symbol |
char* |
国際的な通貨記号(ISO 4217に基づく3文字と区切り文字) |
int_frac_digits |
char |
国際的な通貨表記での小数点以下の桁数 |
int_p_cs_precedes |
char |
国際表記での、非負の値の通貨記号の位置 |
int_n_cs_precedes |
char |
国際表記での、負の値の通貨記号の位置 |
int_p_sep_by_space |
char |
国際表記での、非負の値の空白の有無 |
int_n_sep_by_space |
char |
国際表記での、負の値の空白の有無 |
int_p_sign_posn |
char |
国際表記での、非負の値の符号の位置 |
int_n_sign_posn |
char |
国際表記での、負の値の符号の位置 |
備考
- C++の機能としては、この構造体の情報は
std::numpunctとstd::moneypunctのファセットとして提供される。型安全であり、複数のロケールを同時に扱えるため、C++では通常そちらを使用する
例
#include <clocale>
#include <iostream>
int main()
{
std::setlocale(LC_ALL, "C");
const std::lconv* lc = std::localeconv();
// Cロケールでは、小数点は"."、桁区切りは""(利用できない)
std::cout << lc->decimal_point << std::endl;
std::cout << (lc->thousands_sep[0] == '\0') << std::endl;
}
出力
.
1
バージョン
言語
- C++98