经验 windows目录在实际开发中使用/代替
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经验 windows目录在实际开发中使用/代替相关的知识,希望对你有一定的参考价值。
#include <boost\shared_ptr.hpp>尽量不要使用\,而是使用/,这样子方面移植代码到Linux 环境下
代码如下:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
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" 编译器认为\是用来禁止转义用的,而没有想到用户实际上是作为反斜杠,因此将其清除,导致读取文件路径失败
以上是关于经验 windows目录在实际开发中使用/代替的主要内容,如果未能解决你的问题,请参考以下文章
开发经验为什么gateWay网关要用webFlux代替WebMvc
开发经验为什么gateWay网关要用webFlux代替WebMvc
Windows API一日一练 52 GetCurrentDirectory和SetCurrentDirectory函数