请求用户输入命名使用ofstream C ++ MFC创建的文件

时间:2013-04-21 22:50:16

标签: c++ visual-studio-2012 mfc

如何让用户能够使用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 个答案:

答案 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}}相关联。显然你可以选择一个你选择的名字,但(当然)你需要在两个地方使用相同的名称。