由于用到路径,但是VC不认识F:\xx\awer\soft,所以需要将F:\xx\awer\soft转化成F:\\xx\\awer\\soft,写了如下代码,但是老是出错,请各位高手帮帮忙,看看哪里的问题;出错提示是E:\c语言学习\练习\readwrite\readwriteDlg.cpp(233) : error C2001: newline in constant
E:\c语言学习\练习\readwrite\readwriteDlg.cpp(234) : error C2146: syntax error : missing ')' before identifier 'm_strCopy'
E:\c语言学习\练习\readwrite\readwriteDlg.cpp(234) : error C2001: newline in constant
E:\c语言学习\练习\readwrite\readwriteDlg.cpp(235) : error C2001: newline in constant
E:\c语言学习\练习\readwrite\readwriteDlg.cpp(236) : error C2143: syntax error : missing ')' before '}'
E:\c语言学习\练习\readwrite\readwriteDlg.cpp(236) : error C2143: syntax error : missing ')' before '}'
执行 cl.exe 时出错.readwriteDlg.obj - 1 error(s), 0 warning(s)
CString m_strCopy;//已经有值
int n=0;
while(n<=m_strCopy.GetLength())
{
n=m_strCopy.Find("\");
m_strCopy.Insert("\",n);
n=m_strCopy.Find("\",n);
}
E:\c语言学习\练习\readwrite\readwriteDlg.cpp(234) : error C2146: syntax error : missing ')' before identifier 'm_strCopy'
E:\c语言学习\练习\readwrite\readwriteDlg.cpp(234) : error C2001: newline in constant
E:\c语言学习\练习\readwrite\readwriteDlg.cpp(235) : error C2001: newline in constant
E:\c语言学习\练习\readwrite\readwriteDlg.cpp(236) : error C2143: syntax error : missing ')' before '}'
E:\c语言学习\练习\readwrite\readwriteDlg.cpp(236) : error C2143: syntax error : missing ')' before '}'
执行 cl.exe 时出错.readwriteDlg.obj - 1 error(s), 0 warning(s)
CString m_strCopy;//已经有值
int n=0;
while(n<=m_strCopy.GetLength())
{
n=m_strCopy.Find("\");
m_strCopy.Insert("\",n);
n=m_strCopy.Find("\",n);
}
解决方案 »
- vc 中组件的对齐与填充方式?
- 设置编译模式为release时候,链接问题的LNK2019的错误是怎么回事?
- 使用键盘上的“tab”键移动焦点到“取消”按钮,回车后,为什么是点击的确定按钮
- 如何使一个用 WNetAddConnection2 打开的一个网络连接只供打开它程序使用,而其它进程不让使用?
- 如何获得ie的窗口个数,以及如何关闭?
- 不用分割条,怎样把外来的View类加入到MainFrame中...
- 求源码
- 2.如何给菜单加上选中标记
- 一个小问题,顺带散分!
- 一个控制台程序,但是程序入口不调用mainCRTStartup,请问这是如何实现的?
- 怎么来做HTTP代理
- 高手帮忙看看这个软件是如何录制用户操作的功能
int n=0;
while(n <=m_strCopy.GetLength())
{
n=m_strCopy.Find("\"); //233
m_strCopy.Insert("\",n); //234
n=m_strCopy.Find("\",n); //235
} //236
如果这个值里面已经有了\,那就不需要再转换了。\\只是hardcode时用到的。
str = "F:\xx\awer\soft";
str.Replace("\\","\/");
最后,str的内容会变成F:/xx/awer/soft这个路径可以识别,用Replace函数即可
m_strCopy.Insert("\\",n); //234
n=m_strCopy.Find("\\",n); //235
int n=0;
for(n=0; n<m_strCopy.GetLength() ; n++)
{
TCHAR str = m_strCopy[n];
if(str == '\\')
{
m_strCopy.Insert("\",n);
n++;
}
}
你试试!
转义只在写代码时需要,比如
n=m_strCopy.Find("\\"); //233
此处就需要转义,要表示'\',由于\是转义字符,所以要写两个\\
这样写,由于\是转义,也即 '\"' 表示的是一个字符,即'"',
那么"\"便是一个不完整的字符串,所以会报错,
我是不是应该这样改:
n=m_strCopy.Find("\\");
m_strCopy.Insert("\\\",n);
n=m_strCopy.Find("\\",n); 就是在运行的时候,不能打开转换后的目录文件
m_strCopy.Insert("\\\",n); \是转义
'\\' 表示 '\'
'\"' 表示 '"'
又是一个不完整的字符串