C++ 怎么由路径名的字符串获得路径?

OPENFILENAME ofn;
ofn.lpstrFile=strFile;

if
(GetOpenFileName(&ofn))
{
cout<<strFile<<endl;

Mfilepath=strFile;
}
file.open(Mfilepath,ios::binary|ios::in);
我想让Mfilepath存路径,但是这样strFile里返回的是路径名的字符串,如何转换为路径(const char*)?

}

file.open(Mfilepath,ios::binary|ios::in);

先找到路径的最后一‘\’的下标m,然后使用strncpy()拷贝从0开始到找到m-1到字符串就是路径
至于找最后一个'\'可以从字符串尾向前找第一个'\'记下下标即可追问

啊,我的意思是那个字符串怎么转换为一个file.open可以打开的东西?按我那个语句写是打不开的。。。

追答

方式1:
CFileDialog m_filedlg(true);
m_filedlg.m_ofn.lpstrTitle="MD5 target file select...";
m_filedlg.m_ofn.lpstrFilter="All Files(*.*)\0*.*\0\0";
if(m_filedlg.DoModal()==IDOK)
{
m_pathname=m_filedlg.GetPathName();
m_filesum=_T("");
UpdateData(false);
}

fstream Sfile;

Sfile.open(m_pathname.GetBuffer(0),ios::in|ios::nocreate|ios::binary);

方式2:
CFile file(pathName,CFile::modeRead); //以只读方式打开
file.Read(textContent,file.GetLenght()); //读取
textContent[file.GetLenght()]='\0'; //读取的文本内容后加0有利于后面的输出
file.Close(); //关闭文件

温馨提示:答案为网友推荐,仅供参考
相似回答