std::basic_ios<CharT,Traits>::imbue

< cpp‎ | io‎ | basic ios
std::locale imbue( const std::locale& loc );

替换当前本地环境。等效地调用 ios_base::imbue(loc) ,而若有关联流缓冲( rdbuf() != 0 ),则再调用 rdbuf()->pubimbue(loc)

参数

loc - 新的 locale

返回值

先前的 locale ,以 ios_base::imbue(loc) 返回。

异常

(无)

参数

#include <iostream>
#include <sstream>
#include <locale>
 
int main()
{
    std::istringstream iss;
    iss.imbue(std::locale("en_US.UTF8"));
 
    std::cout << "Current locale: " << iss.getloc().name() << '\n';
 
    iss.imbue(std::locale());
    std::cout << "Global locale : " << iss.getloc().name() << '\n';
}

输出:

Current locale: en_US.UTF8
Global locale : C