C++ 中的 <clocale> 標頭檔案


給定的任務是展示如何在 C++ 中使用 <clocale> 標頭檔案。

<clocale> 標頭檔案是本地化庫的一部分,而本地化庫又是 C++ 標準庫的一部分。最初,它在 C 標準庫中,名稱為 <locale.h>。

此標頭檔案中包含的函式和宣告用於需要不同國家/地區的日期格式和貨幣符號的任務。

<clocale> 標頭檔案中包含的函式是 setlocale() 和 localeconv()

在此標頭檔案中定義並在這兩個函式中使用的宏為:

LC_ALL -> 設定所有內容。

LC_COLLATE -> 它影響 strcoll 和 strxfrm 函式。

LC_CTYPE -> 它影響所有字元函式。

LC_MONETARY -> 它影響 localeconv 函式提供的貨幣資訊。

LC_NUMERIC -> 它影響小數點格式和 localeconv 函式提供的資訊。

LC_TIME -> 它影響 strftime 函式。

localeconv()

localeconv() 函式設定或讀取與位置相關的資訊。

語法

localeconv() 的語法如下:

Struct lconv*localeconv()

setlocale()

setlocale() 函式安裝指定的系統區域設定,並根據當前程式設定區域設定資訊。

語法

setlocale() 的語法如下:

char *setlocale(int category, const char *locale)

示例

Input: setlocale(LC_ALL, "en_GB")
s = setlocale(LC_ALL, NULL)
Output: C

如果 setlocale() 識別 C 區域設定,則返回指向字串的指標,否則返回空指標,在本例中返回“C”。

下面程式中使用的方案如下:

  • 首先在 main() 函式內部呼叫 setlocale() 函式,並將類別設定為 LC_MONETARY,並將區域設定設定為 en_GB。
  • 然後建立結構 lconv,帶有字元指標,例如 lc,並將其保持等於 localeconv() 函式的呼叫,以便 localeconv() 函式可以返回指向我們建立的結構的指標。
  • 然後使用 printf 語句列印當前貨幣。

示例

即時演示

#include <iostream>
#include <locale.h>
using namespace std;
int main() {
   setlocale(LC_MONETARY, "en_GB");
   struct lconv* lc = localeconv();
   printf("%s ", lc->currency_symbol);
   return 0;
}

輸出

如果我們執行上述程式碼,它將生成以下輸出:

£

在輸出中,我們得到英鎊的貨幣符號,它是英國的貨幣,因為在 setlocale 函式中,我們選擇了貨幣類別 LC_MONETARY 並將區域設定設定為“en_GB”,其中 GB 是英國的縮寫。此外,我們建立了 lconv 結構並將其用於顯示英國的當前貨幣符號,即 £。

更新於: 2020年1月20日

229 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.