打开文件时,我常用CStdioFile,因为它有一个函数readstring能够读取一行,而且用这个类打开文件
时要用双斜杠表示目录,但是通过
CFileDialog dlg1(TRUE,"", NULL,  OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 
"PLF Project File (*.txt)|*.txt||", NULL );
if(dlg1.DoModal() == IDOK)
{
BeginWaitCursor();
CString temp1;
temp1= dlg1.GetPathName();
                   .........
          }
获取的路径是单斜杠的,怎么转化成双斜杠阿,因为我想用CStdioFile类打开文件,方便一行一行读取文件按内容。

解决方案 »

  1.   

    CString file="e:\Programme\Branch.txt";
    CStdioFile fi(file,CFile::modeRead);
    ofstream  foo("e:\234.txt"); 
    CString s, p,s1,p1;while(fi.ReadString(s))
    {
    foo<<s<<endl;
    }
    为什么会提示文件e:ProgrammeBranch.txt找不到呢
      

  2.   

    CString file="e:\\Programme\\Branch.txt";str.Replace("\\", "\\\\");
      

  3.   

    楼上的可以
    但是如果是
    CString str="e:\Programme\Branch.txt";

    str.Replace("\", "\\");
    为什么转换不了呢
    还请多多指点啊
      

  4.   

    CString file="e:\Programme\Branch.txt";  //这个字符串中没有'\',只有 '\P', '\B',file.Replace("\", "\\");当然不行
    直接写成CString file="e:\\Programme\\Branch.txt";
    ps:dlg1.GetPathName(); 得到的str是"C:\\abc.txt"这样的,但是它的值是"C:\abc.txt"
    lz不要将表示方式和值搞混了。
      

  5.   

    那为什么
    CString file="e:\Programme\Branch.txt";
    CStdioFile fi(file,CFile::modeRead);
    ofstream  foo("e:\234.txt"); 
    CString s, p,s1,p1;while(fi.ReadString(s))
    {
    foo<<s<<endl;
    }
    既然不用转换,为什么会提示文件e:ProgrammeBranch.txt找不到呢
    问题也许很愚蠢啊,请多多指教
      

  6.   

    printf("%d\n",strlen("e:\Programme\Branch.txt"));
    printf("%d\n",strlen("e:\\Programme\\Branch.txt"));
    printf("%s\n","e:\Programme\Branch.txt");
    printf("%s\n","e:\\Programme\\Branch.txt");
    看一下这两个值,如果不明白,你可以睡觉去了。
      

  7.   

    printf("%d\n",strlen("e:\Programme\Branch.txt"));
    printf("%d\n",strlen("e:\\Programme\\Branch.txt"));
    结果为: e:ProgrammeBranch.txt
            e:\Programme\Branch.txt