假设目标文件路径为  F:\aa.txt
CString ss = _T("F:\aa.txt");int ReadData::getFileLine(CString ss)
{                                                -------------------1
int n = ss.Replace(L"\\",L"\\\\");       -------------------2 //读文件
CStdioFile file;                         -------------------3
CString strText = _T("");                -------------------4
CString szLine = _T("");                 -------------------5
file.Open(ss,CFile::modeRead);           -------------------6
while( file.ReadString( szLine ) )       -------------------7
{
strText += szLine;                       -------------------8
}
AfxMessageBox(strText);                  -------------------9
file.Close();
}由于 \ 的转义字符的问题,调试的时候
第一步的时候发现,传入的参数  ss 实际上不是F:\aa.txt 而是"F:ss.txt"
因此读取文件路径数据的时候也直接出错了
请问这个问题该如何解决?

解决方案 »

  1.   

    记住以后每次写路径的时候写两个“\\”,即写成F:\\aa.txt
      

  2.   


    不要说废话嘛,没看到我一楼都说了知道是转义字符的问题。
    关键在于我传入的参数是直接读取文件的位置,也就是 参数 ss是 F:\aa.txt
    但是传进来后就变成了   F:aa.txt   这个问题不好解决,我当然知道 \ 是转义字符
      

  3.   


    我一楼都说了知道是转义字符的问题。
    关键在于我传入的参数是直接读取文件的位置,也就是 参数 ss是 F:\aa.txt
    但是传进来后就变成了   F:aa.txt   这个问题不好解决,我当然知道 \ 是转义字符
      

  4.   


    你是想把"\"传进来再替换成"\\"?
    可你把ss初始化为"F:\aa.txt",这里面根本就没有"\"。
    别人好心回答你的问题,你却说别人说的是废话,看来你需要提高的不仅仅是技术
      

  5.   

    目标文件路径为 F:\aa.txt  :如果这个文件名称是楼主自定义的一个静态变量,那么名称就应该定义为 F:\\aa.txt
    如果文件是通过函数获取到的,这个字符串楼主就可以直接使用了,已经转化好了的
      

  6.   

    1楼说的那么清楚,还是废话真无语了
    还是这样吧,启禀圣上:
           请这样定义 CString ss = _T("F:\\aa.txt");
      

  7.   

    楼上的你忘了告诉圣上,如果改成
    CString ss = _T("F:\\aa.txt");
    就不需要
    int n = ss.Replace(L"\\",L"\\\\"); -------------------2
    这句了,我主按照你说的改了,还是运行不对,小心圣上雷霆大发,砍你脑袋!
      

  8.   

    CString ss = _T("F:\aa.txt");
    你这个ss不是显然有问题么
    如果F:\aa.txt是从文件读上来
    那文件中是什么样读出来就是什么样
    转义是做好的
      

  9.   


    - -!好吧,别讽刺我了,这个问题卡了很久了,心情不大好,对不起大家了我在阐述一下这个问题吧:CString ss 这个参数不是在函数之前定义的,而是别的地方传递进来的。用一个控件让用户选择他需要的文件,然后读取的是那个控件传递进来的参数,这个参数我暂时命名为ss,这个参数ss传递进来后,就变成了F:ss.txt
      

  10.   


    = =继续先道个歉在重新阐述下问题:
    ss = _T("F:\aa.txt"); 是传递进来的参数,不是我设置的
    这个是直接读取的系统文件的路径
    传进来后 ss就变成了 F:aa.txt
      

  11.   

    你确定传进来之前一定是"F:\aa.txt"?
      

  12.   


    什么控件啊,用户选择文件的话建议用CFileDialog,获取路径应该不会有问题的
      

  13.   

    CString ss = _T("F:\aa.txt");
    应该改成
    CString ss = _T("F:\\aa.txt")吧