关于vs2005的一个问题—— 今天安装了vs2005,打开以前的项目,发现所有用到ifstream fin打开的文件,其路径都不能包含中文,否则fin总是为NULL,请问各位有没有遇到过? 该怎么解决那? 难道又换成2003? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 代码如下:#include "stdafx.h"#include <iostream>#include <fstream>#include <string>using namespace std;int main(){ ifstream fin; string str = "F:\\jxk\\程序\\Test\\000"; fin.open(str.c_str(),ios::binary|ios::in); if(!fin) cout<<"File open failed!"<<endl; else cout<<"File open succeed!"<<endl; fin.close(); return 1;}运行结果为打开文件失败!如果将string str = "F:\\jxk\\程序\\Test\\000";改成string str = "F:\\jxk\\Test\\000";则能够打开文件!改变字符集为unicode或者多字节,不影响结果,即包含中文路径就打不开。我曾经尝试string str = _T("F:\\jxk\\程序\\Test\\000");,但在unicode字符集时无法编译通过,但为多字节字符时可以编译通过!但还是不影响结果!早知道这么多问题, 就将就那个2003用了,但是那个2003的资源视图,真是bug多多—— Microsoft Visual Studio 2005版本 8.0.50727.42 (RTM.050727-4200) TEXT("F:\\jxk\\程序\\Test\\000");, 用TEXT宏好象确实可以,但TEXT("")似乎只能用于常量吧?TEXT(str)貌似不可以呐?而且TEXT()好象是windows特有的哦,需要include <windows.h>的。有没有不依赖于平台,而又可以对变量作转换的函数或者方法? 用MultiByteToWideChar()已搞定——谢谢各位 使用Installshield如何将"项目.exe"同一目录下的INI文件夹以及其中的*.ini文件打包进去? C++与MFC和API还有WINDOWS程序设计的之间的关系 关于断点的问题 服务器突然断网造成客户机长时间死机的情况应该如何解决? 请教一个问题 悬赏(vc+ado远程访问oracle数据库问题,斑竹遇见这样的问题了吗?)解决立即放分 如何获得另一个进程创建的窗口的某个子窗口的标题? ADO-下面这段代码怎么会出错呢?谢谢,100分!急!急!急!急!急!急! 控件拦哪去了 winsock编程如何知道发送缓冲区的状态? 问一下:外面公司有com技术的多不多? 这是什么错误?
#include "stdafx.h"#include <iostream>
#include <fstream>
#include <string>using namespace std;int main()
{
ifstream fin;
string str = "F:\\jxk\\程序\\Test\\000";
fin.open(str.c_str(),ios::binary|ios::in);
if(!fin)
cout<<"File open failed!"<<endl;
else
cout<<"File open succeed!"<<endl; fin.close();
return 1;
}
运行结果为打开文件失败!
如果将string str = "F:\\jxk\\程序\\Test\\000";改成string str = "F:\\jxk\\Test\\000";
则能够打开文件!
改变字符集为unicode或者多字节,不影响结果,即包含中文路径就打不开。我曾经尝试string str = _T("F:\\jxk\\程序\\Test\\000");,但在unicode字符集时无法编译通过,但为多字节字符时可以编译通过!但还是不影响结果!早知道这么多问题, 就将就那个2003用了,但是那个2003的资源视图,真是bug多多——
版本 8.0.50727.42 (RTM.050727-4200)
TEXT(str)貌似不可以呐?
而且TEXT()好象是windows特有的哦,需要include <windows.h>的。有没有不依赖于平台,而又可以对变量作转换的函数或者方法?