【问题标题】:How can i set the default file I/O location如何设置默认文件 I/O 位置
【发布时间】:2016-12-05 23:22:52
【问题描述】:

我想在我的计算机上的特定位置创建并写入文件。我有一个相当大的项目,所以我将发布我坚持的部分。

f = fopen(FileName, "w");

FileName = 包含我要写入的文件名的变量。

问题是它正在创建此文件并将其存储在与我的项目相同的目录位置。我想将它存储在位于同一目录中的名为Individual 的子目录中。有什么想法吗?

【问题讨论】:

    标签: c file-io default fopen


    【解决方案1】:

    你可以通过两种方法解决:

    方法一)改变目录(例如使用chdir()方法)

    方法 2)path 添加到文件名的开头。

    【讨论】:

    • 我决定将它添加到我的 FileName 变量的开头。感谢您的帮助,我应该在询问之前尝试一下。
    【解决方案2】:

    如果您需要在代码中的多个位置使用相同的逻辑,请编写一个名为 getFileNameInDirectoryToSave 的函数。

    调用fopen之前的函数。

    void getFileNameInDirectoryToSave(char const* in, char* out)
    {
       sprintf(out, "Individual/%s", in);
    }
    
    char fileNameToSave[FILESIZE];  // Make FILESIZE large enough.
    getFileNameInDirectoryToSave(FileName, fileNameToSave);
    fopen(fileNameToSave, "w");
    

    如果您只需要该功能一次,则可以使用相同的逻辑。

    char fileNameToSave[FILESIZE];  // Make FILESIZE large enough.
    sprintf(fileNameToSave, "Individual/%s", FileName);
    fopen(fileNameToSave, "w");
    

    【讨论】:

    • 我本来打算用PATH_MAX 推荐FILESIZE,但这只是不同品牌的脚枪。
    猜你喜欢
    • 2010-10-04
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    相关资源
    最近更新 更多