2013-04-21 45 views
0

如何讓用戶能夠使用C++ MFC更改ofstream文件的名稱。我想添加一個編輯控制框,使用戶能夠在單擊保存前輸入文件名。這是我目前的代碼,任何反饋將不勝感激。請求用戶輸入命名正在使用ofstream C++ MFC創建的文件

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_fileCString關聯。顯然你可以選擇一個你自己選擇的名字,但是(當然)你需要在兩個地方使用相同的名字。

相關問題