指定用户定义文件名的路径

时间:2019-09-02 18:18:02

标签: c++ file input ofstream

我试图弄清楚如何在用户命名/定义文件后指定在哪里创建文件。

我正在使用的教科书对此没有任何帮助,并且我尝试弄乱.open语句中的路径定义方式,但是我认为这是我所不知道的。当我定义路径时,因为它用引号引起来,所以我认为filename变量被当作字符串文字使用,最终创建了一个名为“ filename”的文件,而不是用户输入的任何内容。

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
    char response;
    string filename;
    ofstream fileCheck1;
    ifstream fileCheck;
    cout << "Create file? Y(yes) or N(no)\n";
    cin >> response;
    if (response == 'y' || response == 'Y')
    {
        cout << "Please enter file name: ";
        cin >> filename;

        fileCheck1.open (filename);
        if (fileCheck1)
            cout << "file created successfully\n";
        else
            cout << "error opening file\n";
    }
    else if (response == 'n' || response == 'N')
        cout << "press enter to exit\n";
    else
        cout << "invalid input\n";
    cin.get();
    cin.get();
    return 0;
}

默认情况下,将在Visual Studio项目文件所在的位置创建该文件。

1 个答案:

答案 0 :(得分:0)

默认情况下,将在Visual Studio项目文件所在的任何位置创建文件。由于在工作目录设置中指定了 $(ProjectDir)。考虑:


// profile create action creator
export const profileAdd = (formData, history) => async dispatch => {
    console.log(formData); // showing form fields and image till here
     const config = {
        headers : { 'Content-Type': 'application/json' }
      };

     try {
       await api.post('/api/profile/create', formData, config);
       dispatch({ type: 'CREATE_PROFILE', payload: formData });
       history.push('/list')
     } catch (error) {
      console.log(error);
     }
}

始终通过窗口顶部的下拉列表确保您正在更改/查看该窗口中的活动配置和活动平台设置。 这是当您使用Visual Studio(F5)启动程序时Visual Studio用作当前工作目录的路径。

如果直接从debug / release文件夹运行.exe,它将在当前工作目录.exe文件路径中创建文件。

您可以将提到的设置更改为 $(OutputPath),以通过Visual Studio进行相同的行为,或者通过F5运行该程序,或者通过双击.exe文件