现在的位置: 首页 > 综合 > 正文

ofstream无法访问带汉字的目录中的文件

2013年01月22日 ⁄ 综合 ⁄ 共 293字 ⁄ 字号 评论关闭
此为VS的一个BUG,原因是本地化的问题,如下处理即可。
locale loc = locale::global(locale(""));
ifstream ifs(filename.c_str());
locale::global(loc);
在 用ifstream和ofstream打开文件前设置全局locale为本地环境,打开文件后再设置回去。用locale对象的name方法可以看到,通 过locale("")构造出的locale对象的name为"Chinese_People's Republic of China.936",而原始的locale对象的name为"C",也就是缺省的ANSI_C公约。 

抱歉!评论已关闭.