VS2005 FSTREAM 不能打开中文路径名文件的问题!
来源:互联网 发布:淘宝直通车推广技巧 编辑:程序博客网 时间:2024/03/28 19:25
VS2005 FSTREAM 不能打开中文路径名文件的问题!
公司有一个项目从vs2003移植到vs2005之后老是出现runtim error经过排查最终定位在fstream 打开"含中文路径"的文件时候会出现fail的情况本来不相信vs2003过渡到2005会有这个问题,但是经过试验确证实了该问题我新建立一个exe来测试该问题
vs2003不需要作任何设置就可以就可以成功但是vs2005下每次都会失败在断言处,查找了一些网上资料,例如http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=371229&SiteID=1发现但凡是uinicode的路径都是有该问题的.
解决方法有2个
1.第一个使用vs2005默认的unicode set并在所有字符串外面面加上_T() 或者_TEXT宏,代价是原来所有不符合unicode规范的地方你都必须得改.
2.使用not set 或者"mutibyte set" 并在程序初始化的时候调用setlocale()如下
#include "stdafx.h"#include "testiostream.h"#include <string>#include <fstream>BEGIN_MESSAGE_MAP(CtestiostreamApp, CWinApp)END_MESSAGE_MAP()CtestiostreamApp::CtestiostreamApp(){}CtestiostreamApp theApp;BOOL CtestiostreamApp::InitInstance(){ CWinApp::InitInstance(); std::ifstream iput; iput.open("F:\\中文.txt"); ASSERT(!iput.fail()); return FALSE;}
vs2003不需要作任何设置就可以就可以成功但是vs2005下每次都会失败在断言处,查找了一些网上资料,例如http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=371229&SiteID=1发现但凡是uinicode的路径都是有该问题的.
解决方法有2个
1.第一个使用vs2005默认的unicode set并在所有字符串外面面加上_T() 或者_TEXT宏,代价是原来所有不符合unicode规范的地方你都必须得改.
2.使用not set 或者"mutibyte set" 并在程序初始化的时候调用setlocale()如下
BOOL CtestiostreamApp::InitInstance(){ setlocale(LC_ALL,"Chinese-simplified"); CWinApp::InitInstance(); std::ifstream iput; iput.open("F:\\中文.txt"); ASSERT(!iput.fail()); return FALSE;}
上述引用的ms论坛连接基本讲清楚了该问题,但是由于我前几日搜索中文相关信息时候,实在未发现有用之内容,故记录下来,希望有相同问题又不思其解的朋友可以少花点时间.
- VS2005 FSTREAM 不能打开中文路径名文件的问题!
- 解决VS2005中fstream不能打开带有中文路径文件的问题
- 解决fstream不能打开带有中文路径文件的问题
- VS2005中fstream不能读取中文路径名的解决方法
- vs fstream 不能打开中文路径名文件
- VS2005中fstream不能读中文路径文件的bug
- 让VS2005中的fstream支持中文路径文件打开
- 让VS2005中的fstream支持中文路径文件打开 (转)
- 让VS2005中的fstream支持中文路径文件打开
- 让VS2005中的fstream支持中文路径文件打开
- 让VS2005中的fstream支持中文路径文件打开
- 让VS2005中的fstream支持中文路径文件打开
- 让VS2005中的fstream支持中文路径文件打开
- 让VS2005,vs2008中的fstream支持中文路径文件打开
- fstream操作中文路径名的文件
- fstream打开中文路径问题
- 关于std::fstream以及std::ifstream打开中文路径名失败的问题和解决方法
- 关于std::fstream以及std::ifstream打开中文路径名失败的问题和解决方法
- linux(debian)下chrome,firefox登录12306购买火车票流程,chrome添加例外,让支付宝可用
- MySQL的注释、Query_cache有关的一个bug
- 某单元的逻辑地址是2345H:6789H求其物理地址--对段式管理和页式管理的说明(2)
- 怎样写出更加专业的CSS代码
- Http协议
- VS2005 FSTREAM 不能打开中文路径名文件的问题!
- 如果你喜欢Python 那么你不得不知的几个开源项目
- 【概念学习】幂等性
- 优秀程序员不得不知道的20个位运算技巧
- 十个jQuery图片画廊插件推荐
- 函数的复写
- Level Set方法简介
- 十个JDBC的最佳实践
- JS动态操作表格