请求用户输入以命名使用 ofstream C++ MFC 创建的文件
Posted
技术标签:
【中文标题】请求用户输入以命名使用 ofstream C++ MFC 创建的文件【英文标题】:Requesting User Input to Name the File being created using ofstream C++ MFC 【发布时间】:2013-04-21 22:50:15 【问题描述】:您将如何让用户能够使用 c++ MFC 更改 ofstream 文件的名称。我想添加一个编辑控制框,使用户能够在单击保存之前输入文件名。这是我目前的代码,任何反馈将不胜感激。
void CECET_MFC_Dialog_Based_IntroDlg::OnBnClickedSave()
UpdateData(true);
ofstream myfile ("Save_Random.xls");
if (myfile.is_open())
myfile << "This is the 1st line.\n" << endl;
for(int index=0; index<100; index++) // samples to create
myfile << setprecision(4) << dblArray[index] << endl;
myfile << "This is another line.\n";
myfile << "Max = " << rndMax << endl;
myfile << "Min = " << rndMin << endl;
myfile << "Mean = " << Final_Avg << endl;
myfile.close();
else cout << "Unable to open file";
UpdateData(false);
【问题讨论】:
【参考方案1】:您可以像添加任何其他控件一样添加编辑控件——将其从工具箱拖到对话框中。也许更重要的是,您通常希望在它旁边放置一个浏览按钮,以便用户可以浏览他们想要的文件夹/文件名。该按钮的代码如下所示:
void CYourDlg::OnBrowseButton()
UpdateData();
CFileDialog dlg(false, NULL, NULL, OFN_OVERWRITEPROMPT );
if (dlg.DoModal())
m_dest_file = dlg.GetPathName();
UpdateData(false);
然后,当用户单击任何按钮(或菜单项等)让您写入文件时,您执行以下操作:
std::ofstream myfile(m_dest_file);
// write the data
我假设您已将编辑控件与名为 m_dest_file
的 CString
相关联。显然,您可以选择自己喜欢的名称,但(当然)您需要在两个地方使用相同的名称。
【讨论】:
以上是关于请求用户输入以命名使用 ofstream C++ MFC 创建的文件的主要内容,如果未能解决你的问题,请参考以下文章