MFC程序设计问题请教

设计程序。单击“打开文件”按钮,弹出“打开文件对话框”,选择数据文件,点击
OK 按钮后在窗口输出数据的平均值、中值。

MFC程序设计中,要实现打开文件对话框,选择数据文件,读取数据的功能,你可以参考以下步骤:

定义一个CFileDialog对象,设置过滤器和标志,用于显示打开文件对话框。
调用CFileDialog的DoModal方法,显示打开文件对话框,并判断用户是否点击了OK按钮。
如果用户点击了OK按钮,调用CFileDialog的GetPathName方法,得到用户选择的文件的完整路径。
定义一个CStdioFile对象,用于读取文件数据。
调用CStdioFile的Open方法,打开用户选择的文件,并判断是否成功。
如果成功打开文件,调用CStdioFile的ReadString方法,逐行读取文件数据,并进行相应的处理。例如,如果要计算数据的平均值和中值,你可以将每行读取的数据转换为数值类型,并存入一个数组或向量中,然后对数组或向量进行求和、排序等操作。
调用CStdioFile的Close方法,关闭文件。
在窗口输出数据的平均值和中值,你可以使用SetDlgItemText或SetWindowText等方法,在编辑框或状态栏等控件中显示结果。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/210943
  • 这篇博客你也可以参考下:MFC文件打开、保存对话框 及文件创建、存储
  • 除此之外, 这篇博客: MFC点击按钮打开文件夹/文件,并显示文件夹/文件路径到编辑框中的 选择文件夹 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    void CFileSeparationDlg::OnBnClickedBrowse()
    {	
    	CString m_strFileOut = _T("");  //初始化适应Unicode
    
    	TCHAR szSelected[MAX_PATH];//用来存放文件夹路径  
    
    	BROWSEINFO bi;
    
    	LPITEMIDLIST pidl;
    
    	bi.hwndOwner = this->m_hWnd;
    
    	bi.pidlRoot = NULL;
    
    	bi.pszDisplayName = szSelected;
    
    	bi.lpszTitle = _T("选择输出文件路径");
    
    	bi.ulFlags = BIF_RETURNONLYFSDIRS;
    
    	bi.lpfn = NULL;
    
    	bi.lParam = NULL;
    
    	bi.iImage = NULL;
    
    	if ((pidl = SHBrowseForFolder(&bi)) != NULL)
    
    	{
    
    		if (SUCCEEDED(SHGetPathFromIDList(pidl, szSelected))) //得到文件夹的全路径,不要的话,只得本文件夹名  
    
    		{
    
    			m_strFileOut = szSelected;  	//获得文件夹的全路径
    
    		}
    
    	}
    	SetDlgItemText(IDC_EDIT1, m_strFileOut);
    }
    
    
    
  • 您还可以看一下 胡兵老师的MFC快速入门课程中的 使程序只运行一个实例小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    根据参考资料中的代码,可以看出这段代码是解决一个年龄计算的问题,而不是关于MFC程序设计的问题。所以无法直接给出具体的解决方案。如果你有关于MFC程序设计的问题,请提供更具体的问题描述,我会尽力给出相应的帮助和解答。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^