windows目录\在实际开发中使用/代替-创新互联

#include 尽量不要使用\,而是使用/,这样子方面移植代码到Linux 环境下

专注于为中小企业提供成都网站设计、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业镜湖免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了数千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

代码如下:

#include "stdafx.h"

#include

#include

#include

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

 char utfBuffer[256] = {0};

 ifstream  utffile("E:/doc/Android/Makefile");//OK

//ifstream  utffile("E:\doc\Android\Makefile");//ERROR

//ifstream  utffile("E:\\doc\\Android\\Makefile");//OK

 utffile.getline(utfBuffer, 100);

 size_t inLen = strlen(utfBuffer);

  return 0;

}

总结:

第一种方案采用和Unix系统一样的斜杠,方便在以后的开发中移植到Linux平台,毕竟头文件include中斜杠的修改比较麻烦。

第三种方法采用双反斜杠,告诉编译器前面的反斜杠不是用来屏蔽转义的,而是实实在在存在的。

第二种错误方案,详细分析:

拆分字符串:

 char utfBuffer[256] = {0};

 char szPathName[256] ={"E:\doc\Android\Makefile"};

 ifstream  utffile(szPathName);

 utffile.getline(utfBuffer, 100);

 size_t inLen = strlen(utfBuffer);

return 0;

通过单步调试szPathName的实际内容变成:"E:docAndroidMakefile"  编译器认为\是用来禁止转义用的,而没有想到用户实际上是作为反斜杠,因此将其清除,导致读取文件路径失败

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:windows目录\在实际开发中使用/代替-创新互联
URL分享:http://hbruida.cn/article/dihcgp.html