背景:最近在折腾XML解析的函数库,用了一把VC++6.0 。由于一直是在LINUX
系统下编程,WINDOWS下c编程经验很少 ,被下面的简单问题折腾了好久。
环境:windows xp 。VC++ 6.0
级别:初学
正文:
由于windows的目录分割符是使用 "/" 与c语言的转义字符是一个(LINUX下就没有这个问题)
因此赋值给string类变量时候下述的赋值是错误的
错误的例子:
#include <string>
#include <iostream>
using namespace std;
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
string xmlFile;
xmlFile = "./bin/MP.xml";
cout << xmlFile << endl;
return 0;
}
{
string xmlFile;
xmlFile = "./bin/MP.xml";
cout << xmlFile << endl;
return 0;
}
此时打印出来的信息如下:
inMP.xml
不会打印出第一个. 因为/b会向后删除一个字符(backspace)
正确的例子:
#include <string>
#include <iostream>
using namespace std;
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
string xmlFile;
xmlFile = ".//bin//MP.xml";
cout << xmlFile << endl;
return 0;
}
{
string xmlFile;
xmlFile = ".//bin//MP.xml";
cout << xmlFile << endl;
return 0;
}
此时打印出来的信息如下:
./bin/MP.xml
信息正常了