C++流緩衝區::getloc()函式



std::streambuf::getloc() 函式用於檢索與流緩衝區關聯的當前區域設定。區域設定包括各種方面,例如數字格式、字元分類等等,這些方面會影響流如何處理資料。

語法

以下是 std::tuple:: 的語法。(此處應為std::streambuf::getloc()的語法)

locale getloc() const;

引數

它不接受任何引數。

返回值

此函式返回當前與流緩衝區關聯的區域設定物件。

異常

如果丟擲異常,流緩衝區不會發生任何更改。

資料競爭

它訪問流緩衝區物件。

示例1

在下面的示例中,我們將考慮getloc()函式的基本用法。(此處應補充示例程式碼)

#include <iostream>
#include <sstream>
#include <locale>
int main() {
   std::stringstream a;
   std::locale b = a.rdbuf() -> getloc();
   std::cout << "Default locale: " << b.name() << std::endl;
   return 0;
}

輸出

上述程式碼的輸出如下:(此處應補充輸出結果)

Default locale: C

示例2

考慮下面的示例,我們將結合使用imbu()和getloc()函式。(此處應補充示例程式碼)

#include <iostream>
#include <sstream>
#include <locale>
int main() {
   std::stringstream a;
   std::locale b("en_US.UTF-8");
   a.imbue(b);
   std::locale x = a.rdbuf() -> getloc();
   std::cout << "Current locale: " << x.name() << std::endl;
   return 0;
}

輸出

上述程式碼的輸出如下:(此處應補充輸出結果)

Current locale: en_US.UTF-8

示例3

讓我們看看下面的示例,我們將把stringstream的區域設定設定為fr_FR.UTF-8並應用getloc()函式。(此處應補充示例程式碼)

#include <iostream>
#include <sstream>
#include <locale>
int main() {
   std::stringstream a;
   a.imbue(std::locale("fr_FR.UTF-8"));
   std::locale b = a.rdbuf() -> getloc();
   std::cout << "Locale: " << b.name() << std::endl;
   a << 1123228.33;
   std::cout << "Formatted number: " << a.str() << std::endl;
   return 0;
}

輸出

如果我們執行上述程式碼,它將生成以下輸出:(此處應補充輸出結果)

Locale: fr_FR.UTF-8
Formatted number: 1 123 228,33
streambuf.htm
廣告