如何让用户能够使用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);
}
答案 0 :(得分: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
我假设您已将编辑控件与名为CString
的{{1}}相关联。显然你可以选择一个你选择的名字,但(当然)你需要在两个地方使用相同的名称。