C++打开文件老是失败
文件名格式一开始是CString转化为char*后发生变化,调试的时候
显示strFileName是“C420150311214100000.csv”,(引号内为我实际的文件名加后缀)但是转换以后的cFileName就是0x0015cdb8“C420150311214100000.csv”,然后文件就一直打开失败,刚刚接触,菜鸟一枚,求高手指点啊啊啊啊啊啊
void CMy0720_mydrawDlg::OnBnClickedButton4()//1064nm按键
{
// TODO: 在此添加控件通知处理程序代码
// 设置过滤器
TCHAR szFilter[] = _T("文本文件(*.csv)|*.csv|所有文件(*.*)|*.*||");
// 构造打开文件对话框
CFileDialog fileDlg(TRUE, _T("csv"), NULL, 0, szFilter, this);
CString strFilePath;
CString strFileName;
//char szTemp[128];
//memset(szTemp,0,128);
// 显示打开文件对话框
if (IDOK == fileDlg.DoModal())
{
// 如果点击了文件对话框上的“打开”按钮,则将选择的文件路径显示到编辑框里
strFilePath = fileDlg.GetPathName();//获取文件路径
strFileName = fileDlg.GetFileName();//获取文件名称
SetDlgItemText(IDC_EDIT4, strFilePath);
//转换
char * cFileName =strFileName.GetBuffer(strFileName.GetLength());
strFileName.ReleaseBuffer();
int hang=CountLines(cFileName);
}
int CMy0720_mydrawDlg::CountLines(char *filename)
{
ifstream ReadFile;
int n=0;
string temp;
ReadFile.open(filename,ios::in);//ios::in 表示以只读的方式读取文件
if(ReadFile.fail())//文件打开失败:返回0
{
return 0;
}
else//文件存在,返回文件行数
{
while(getline(ReadFile,temp))
{
n++;
}
return n;
}
ReadFile.close();
}