请教个STL locale的问题

idoloveyou 2006-10-27 06:02:03
在研究STL的locale,好复杂啊……

是这样的,我建立一个num_put的实例:

const num_put<char, ostream_iterator<char> > &np = use_facet<num_put<char, o
stream_iterator<char> > >(locale("deu"));

建立一个德语locale自带的numpunct的facet,然后:

np.put(oit, cout, ' ', 12235.76f);

这个oit是cout的ostream_iterator

为什么我输出的东西没有应用德语的locale特性呢?

只有我在put之前调用cout.imbue(locale("deu"));才可以应用。

查了MSDN,上面说put的第二个参数是包含了要使用的那个facet的stream,那如果以这
个参数所带的facet为准,那我初始化np的时候传入的locale是干什么用的呢?

乱七八糟的,不知道说明白没有,有人对这块比较熟吗?谢谢:)
...全文
227 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
taodm 2006-11-16
  • 打赏
  • 举报
回复
不会,没用过。
建议你找《C++流与本地化》这本书,此宝典专门讲这个问题的。
也许侯捷翻译的《C++标准库》也有。
idoloveyou 2006-11-16
  • 打赏
  • 举报
回复
这问题怎么就没人能帮我解释清楚呢……

我可以再加分啊,100分,200分,都可以……

就是想明白这件事情……
idoloveyou 2006-10-30
  • 打赏
  • 举报
回复
大哥们,能不能说的明白一些啊?

我初始化num_put用的那个locale到底对我的最后输出结果有什么影响呢?如果没有影响为什么还要用那个locale初始化num_put呢?

谢谢!
OOPhaisky 2006-10-28
  • 打赏
  • 举报
回复
语言文化信息
idoloveyou 2006-10-27
  • 打赏
  • 举报
回复
楼上的,谢谢你的回答

请问你是不是说初始化np的时候传入的locale是初始化我的地域信息?
那这个locale对num_put::put的结果会有什么影响呢?我觉得影响都在put函数的第二个stream啊
jixingzhong 2006-10-27
  • 打赏
  • 举报
回复
它是用来初始化地域信息的,
也就是和你使用的语言有关系 ...

比如汉字、韩文 等 ...

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧