免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4972 | 回复: 5
打印 上一主题 下一主题

求助:向文件中输出中文,使用wfstream,imbuse()运行时报错 [复制链接]

论坛徽章:
4
亥猪
日期:2013-09-27 13:50:29酉鸡
日期:2013-10-09 13:08:59丑牛
日期:2013-10-20 11:16:47亥猪
日期:2013-10-26 11:50:59
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-09 17:52 |只看该作者 |倒序浏览
rt
程序意图: 向文件中输出中文
见代码
  1. /输出到文件中查看
  2.                 wofstream woutfile("wout.log" , ios::out|ios::app|ios::ate);
  3.                 woutfile<<L"will write woutfile"<<endl;
  4.                 woutfile<<L"将开始写"<<endl;
  5.                 std::locale oldloc = woutfile.getloc();
  6.                 woutfile.imbue(std::locale("chs"));
  7.                 woutfile<<L"woutfile ws = "<<ws<<endl;
  8.                 woutfile.imbue(oldloc);
复制代码
运行时报错:
terminate called after throwing an instance of 'std::runtime_error'
  what():  locale::facet::_S_create_c_locale name not valid
Aborted

论坛徽章:
0
2 [报告]
发表于 2010-07-09 18:03 |只看该作者
"chs"无效,用"zh_CN.UTF-8"试试

论坛徽章:
4
亥猪
日期:2013-09-27 13:50:29酉鸡
日期:2013-10-09 13:08:59丑牛
日期:2013-10-20 11:16:47亥猪
日期:2013-10-26 11:50:59
3 [报告]
发表于 2010-07-09 18:11 |只看该作者
zh_CN.UTF-8 是echo $LANG查看的那些么?
怎么看系统支不支持zh_CN.UTF-8?

论坛徽章:
0
4 [报告]
发表于 2010-07-09 18:22 |只看该作者
用 locale -a 看。

你得让glibc支持你的语言才行。如果不支持。

编辑/etc/locale.gen

  1. en_US ISO-8859-1
  2. en_US.UTF-8 UTF-8
  3. zh_CN.GBK GBK
  4. zh_CN.GB2312 GB2312
  5. zh_CN.GB18030 GB18030
  6. zh_CN.UTF-8 UTF-8
复制代码
然后 sudo locale-gen

论坛徽章:
0
5 [报告]
发表于 2010-07-09 18:24 |只看该作者
至于环境变量我的机子设置了这几个

  1. LC_MESSAGES=zh_CN.UTF-8
  2. LANG=zh_CN.UTF-8
  3. LC_CTYPE=zh_CN.UTF-8
复制代码

论坛徽章:
0
6 [报告]
发表于 2010-07-10 11:31 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP