疯了,昨晚搞了好久,愣是报错,无奈向诸网友求救想打开一个.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); }
解决方案 »
- 雷达扫表界面的数据显示
- vs2005 setup project如何执行代码?
- C盘能改名吗???
- 引用对象的问题
- 如何动态分割sdi? 在静态分割后动态改变视图(内容中描述)
- 在做一个下载器,现在想借助迅雷的多资源下载来提高速度,但是他是如何获得相同资源的呢?那位高手解答一下?就剩30都给了
- 关于inline函数编译问题
- 怎么实现编辑操作的Undo, 高分求助...
- 我在CTestApp::InitInstance()中建立一个对话筐,如何能将对话筐的成员传递到 CTestView 中去?
- 在VC6.0中编译C程序,有什么不同吗?
- 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里面不是要放文件名吗