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
广告
© . All rights reserved.