C++国际化相关的一个问题

妍妍 2011-09-20 03:45:10
最近看C++编程思想第二卷第四章输入输出流部分的国际化一部分内容的时候
测试书上的例子遇到如下问题:
float val=1234.56;
cout.imbue(locale("french"));
locale current=cout.getloc();
cout<<current.name()<<endl;
cout<<val<<endl;
输出如下:
French_France.1252
1?34.56

不知道2为什么变成了问号,是我系统环境的问题,还是什么其他的问题
请知情者告知,谢谢
...全文
124 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
妍妍 2011-09-20
  • 打赏
  • 举报
回复
谢谢你的提醒,我明白了,虽然还不知道怎么回事
pengzhixi 2011-09-20
  • 打赏
  • 举报
回复
嗯,看错了。我要表达的意思是,当你机器上没有法国字符集环境的时候那么就会影响输出,至于他会输出什么样的字符这个就不清楚了。
妍妍 2011-09-20
  • 打赏
  • 举报
回复
chs不一样的,1,234.56
french的输出是1?34,56
pengzhixi 2011-09-20
  • 打赏
  • 举报
回复
额 你怎么知道分隔符变成逗号就一定是用的法国的字符集呢?你可以改成
cout.imbue(locale("chs"));试试,一样是逗号作为分隔符。
妍妍 2011-09-20
  • 打赏
  • 举报
回复
那个输出是1?34,56
上面我输入错了

如果我的系统不支持法语的话,浮点数的那个分隔符变成了逗号呢
pengzhixi 2011-09-20
  • 打赏
  • 举报
回复
额 如果你的操作系统版本没有相应的字符集 那就有关了。
妍妍 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pengzhixi 的回复:]

看看上下文有没有提到是什么版本的操作系统吧。
[/Quote]

讲语言的东西,跟平台无关呀
pengzhixi 2011-09-20
  • 打赏
  • 举报
回复
看看上下文有没有提到是什么版本的操作系统吧。
太强大了,作为C++程序员,你该懂的!!!!! 内容简介   C++ 标准程序库提供一组通用类别(classes)和接口(interfaces),可大幅扩充 C++ 核心语言。由于程序库本身并不容易,为了完整运用其组件并从其强大的威力中获得帮助,你需要一份完善的资源,而非一份仅仅陈列类和函数的普通文档。   《The C++ Standard Library》(中文版《C++ 标准程序库》)不仅对每一个程序库组件提供范围广泛的说明,也对繁杂的感念提供清楚明亮的解释,并描述高效运用这些组件时需要的实际编程细节,提出一个一个的范例程序。   这本包含最新资料的完整书籍,反映出被 ANSI/ISO C++ 语言标准规格书纳入的 C++ 标准程序库的结构。更明确地说,本书将焦点放在标准模板库(Standard Template Library)身上,检验其中的容器(containers)、迭代器(iterators)、仿函数(functors)和算法(algorithms)。你还可以找到特殊容器、字符串(strings)、数值类别、国际化议题、IOStream。每一个组件都有深刻的呈现,包括其介绍、设计、运用实例、细部解说、陷阱、意想不到的危险,以及相关类别和函数的确切标记(signature)和定义。一份见解深刻的基础概念介绍和一个程序库综合鸟瞰,会对新手带来快速的提升。   《The C++ Standard Library》范围广泛、详细、可读性高、实用, 是值得你一再查阅的 C++ 宝贵资源。本书网站 http://www.josuttis.com/libbook,其中提供书中源码下载。

64,651

社区成员

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

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