打开文件时,我常用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类打开文件,方便一行一行读取文件按内容。
时要用双斜杠表示目录,但是通过
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类打开文件,方便一行一行读取文件按内容。
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找不到呢
但是如果是
CString str="e:\Programme\Branch.txt";
str.Replace("\", "\\");
为什么转换不了呢
还请多多指点啊
直接写成CString file="e:\\Programme\\Branch.txt";
ps:dlg1.GetPathName(); 得到的str是"C:\\abc.txt"这样的,但是它的值是"C:\abc.txt"
lz不要将表示方式和值搞混了。
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找不到呢
问题也许很愚蠢啊,请多多指教
printf("%d\n",strlen("e:\\Programme\\Branch.txt"));
printf("%s\n","e:\Programme\Branch.txt");
printf("%s\n","e:\\Programme\\Branch.txt");
看一下这两个值,如果不明白,你可以睡觉去了。
printf("%d\n",strlen("e:\\Programme\\Branch.txt"));
结果为: e:ProgrammeBranch.txt
e:\Programme\Branch.txt