疯了,昨晚搞了好久,愣是报错,无奈向诸网友求救想打开一个.txt文档,一行两个数据的,想将数据放入数组,但feof这一行报错
void CMFCDlg::OnBnClickedOk()
{
FILE *fp; double x[1000] ;int i=0;
CString m_strFilePathName;
CFileDialog dlg(TRUE,_T("txt"),_T("*.txt"),OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("txt文件(*.txt)|*.txt|所有文件(*.*)|*.*|"));
if (dlg.DoModal())
{
CString m_strFilePathName=dlg.GetFileName();
}
fp=fopen("m_strFilePathName","r");
while(!feof(fp))
{ fscanf(fp, "%f", &x[i]);i++;』 fclose(fp);free(fp); }
void CMFCDlg::OnBnClickedOk()
{
FILE *fp; double x[1000] ;int i=0;
CString m_strFilePathName;
CFileDialog dlg(TRUE,_T("txt"),_T("*.txt"),OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("txt文件(*.txt)|*.txt|所有文件(*.*)|*.*|"));
if (dlg.DoModal())
{
CString m_strFilePathName=dlg.GetFileName();
}
fp=fopen("m_strFilePathName","r");
while(!feof(fp))
{ fscanf(fp, "%f", &x[i]);i++;』 fclose(fp);free(fp); }
解决方案 »
- vc2003 怎么添加消息响应函数。
- 大家不结贴的原因是什么?
- CString类型的IP地址显示到IPAddress控件里
- 谁能说一下c里的按直传递和引用传递有什么区别啊~
- 请问判断一个路径例如(d:\program\files\)是否存在应该用哪个API函数?
- vc中的Output窗口是怎么做的?
- 怎样用CFileDialog保存扩展名相同,格式不同的文件
- 怎么把响应节点改变后的TV_ITEM结构保存到一个对话框局部变量内呢?里面有指针,句柄,不能直接用“=”
- win 7 下如何卸载.net framework 4.0 啊?
- 函数SetData()求教
- java除了做数据库应用还能做什么?(扔砖头吧,我用头顶!)
- 不知道该不该在这里提问,关于两种不同的开发语言共同做项目
if (fp)
{
while(!feof(fp))
{ fscanf(fp, "%f", &x[i]);i++;』 fclose(fp);}}
CString m_strFilePathName;
CFileDialog dlg(TRUE,_T("txt"),_T("*.txt"),OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("txt文件(*.txt)|*.txt|所有文件(*.*)|*.*|"));
CString m_strFilePathName
if (dlg.DoModal()==IDOK)
{
m_strFilePathName=dlg.GetPathName();
}
fp=fopen(m_strFilePathName,"r");
if (fp)
{
while(!feof(fp))
{
fscanf(fp, "%f", &x[i]);i++;
fclose(fp);
}
}
FILE *fp; double x[1000] ;int i=0;
CString m_strFilePathName;
CFileDialog dlg(TRUE,_T("txt"),_T("*.txt"),OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("txt文件(*.txt)|*.txt|所有文件(*.*)|*.*|"));
CString m_strFilePathName;
if (dlg.DoModal()==IDOK)
{
m_strFilePathName=dlg.GetPathName();
}
fp=fopen(m_strFilePathName,"r");
if (fp)
{
while(!feof(fp))
{
fscanf(fp, "%f", &x[i]);i++;
fclose(fp);
}
}
void CMFCDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2; // 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}//当用户拖动最小化窗口时系统调用此函数取得光标显示。
HCURSOR CMFCDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}void CMFCDlg::OnBnClickedOk()
{
FILE *fp; double x[2000] ;int i=0;
CString m_strFilePathName;
CFileDialog dlg(TRUE,_T("txt"),_T("*.txt"),OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("txt文件(*.txt)|*.txt|所有文件(*.*)|*.*|"));
if (dlg.DoModal())
{
CString m_strFilePathName=dlg.GetFileName();
}
fp=fopen("m_strFilePathName","r");if(!fp)
MessageBox("打开文件失败!","Error",MB_OK);
else
{
while(!feof(fp))
{ fscanf(fp, "%f", &x[i]);i++;};
fclose(fp);}
}
结果打不开文件
------------------------------------
我都写了一遍了..............再重复一遍fp=fopen(m_strFilePathName,"r");
报错*file!=_T('\0')
{
FILE *fp; double x[2000] ;int i=0;
CString m_strFilePathName;
CFileDialog dlg(TRUE,_T("txt"),_T("*.txt"),OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("txt文件(*.txt)|*.txt|所有文件(*.*)|*.*|"));
if (dlg.DoModal())
{
CString m_strFilePathName=dlg.GetFileName();//改为GetPathName()也不行
}
fp=fopen(m_strFilePathName,"r");
if(fp)
{
while(!feof(fp))
{ fscanf(fp, "%f", &x[i]);i++;};
fclose(fp);};
}
CString m_strFilePathName;//放在外面!
if (dlg.DoModal()==IDOK)
{
m_strFilePathName=dlg.GetPathName();//取全路径!
}
void CMFCDlg::OnBnClickedOk()
{
FILE *fp; double x[2000] ;int i=0;
CString m_strFilePathName;
CFileDialog dlg(TRUE,_T("txt"),_T("*.txt"),OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("txt文件(*.txt)|*.txt|所有文件(*.*)|*.*|"));
if (dlg.DoModal())
{
m_strFilePathName=dlg.GetFileName();}
fp=fopen(m_strFilePathName,"r");
if(fp) //断点调试后发现fp报错误指针
{
while(!feof(fp))
{ fscanf(fp, "%f", &x[i]);i++;};
fclose(fp);};
}
那是不是参数m_strFilePathName类型的问题?
晕,看清楚了:
CString m_strFilePathName;//放在外面!
if (dlg.DoModal()==IDOK)
{
m_strFilePathName=dlg.GetPathName();//取全路径!
}
汗死~ 楼主眼神实在是#$@#
m_strFilePathName=dlg.GetFileName();//这里要改成取全路径的GetPathName
fopen里面不是要放文件名吗