0

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);  
}
4

1 に答える 1

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名前付きm_dest_file. 明らかに、任意の名前を選択できますが、(もちろん) 両方の場所で同じ名前を使用する必要があります。

于 2013-04-21T23:11:03.327 に答える