在vc里面我从界面得到文件路径是filename="d:\vc\des\m1.txt";请问我该怎么把它变成filename="d:\\vc\\des\\m1.txt";的形式呢?知道的请付上你的代码好吗,不知道具体的实现的请告诉我该用String类的一些什么函数??谢谢大家的帮助?
解决方案 »
- WH_CALLWNDPROC为什么可以可以把其他程序勾到自己的程序中
- 框架类读取视类数据出错
- VC2008的字符串问题
- 关于ODBC有点难度的问题,请教大家
- 如何在 ATL中 使用向 MFC中的 WindowProc 窗口过程函数
- (急!请问用什么函数可以删除调所画的图形)
- MFC扩展DLL的难题,难啊!!!
- 高手作答,新手来顶!GetFontUnicodeRanges得到的字符的索引问题
- 继承,动态绑定,高手进
- 求救:用VC做了一个AX控件,用VC程序测试该控件没有问题(内存泄漏、访问异常等错误均没有),但用VB程序测试总导致VB崩溃——诸位高手有何见解或参考意见?
- 郁闷的问题,关于接受icmp回应得线程
- ADO编程: _RecordsetPtr m_pR;这个m_pR有静态和动态的区别吗?
filename.Replace("\", "\\");
filename.Replace("\", "\\");
byry(pepsi) ( ) 已经答了,HEHE
CString filename="d:\vc\des\m1.txt";
filename.Replace("\", "\\");
这两句没有一句能编译通过在文件路径中加"\"主要的原因是c/c++中用""来表达一个字符串时, "\"这个字符后面加一些特定的字符会形成一个转义字符。 比如\n,用此类转义符赋值后字符串中相应位置的实际字符就会被\n表示的换行字符所替代。c/c++中对路径的字符串并没有特殊的要求, 我感觉你的理解是必须有两个\\,其实这也算是一个转义字符,因为如果在一个""表示的字符串中如果只有一个\编译器会连同\后面的字符翻译为一个字符,这里加两个\\就是为了让编译器把这两个\\翻译成一个\字符
比如
char szbuf[] = "c:\\test\\test.cpp";
赋值后你去debug看szbuf的实际值 是c:\test\test.cpp
所以如果你从界面得到了文件路径, 并且这个路径在字符串中是标准的形式(比如上面的c:\test\test.cpp)那么什么改动也不需要了. 再罗嗦一遍, c/c++中并不需要特殊的路径表示法, 主要因为\在字符串中是一个转义符, 不能独立的表示一个字符, 所以要用\\来表示一个
楼主要学会用memory和watch窗口啊
在view->debug windows下
按理说不需要替换,如果一定要替换的话,如下:
CString filename;
filename.Replace("\\", "\\\\");
GetModuleFileName(NULL,exeFullPath,MAX_PATH);//获得本程序所在的目录及程序名
char temp[MAX_PATH];
int n=0,i=0;
while(1)
{
if(exeFullPath[i]!=92)
temp[n]=exeFullPath[i];
else
{
temp[n]=92;
temp[n+1]=92;
++n;
}
i++;
n++;
if(exeFullPath[i]=='\n')
break;
if(i>=MAX_PATH)
break;
}
AfxMessageBox(temp);
filename.Replace("\\", "\\\\");Support