可执行文件无法在双击执行时创建新文件

时间:2012-12-12 02:19:35

标签: c++ macos fstream

我正在编写一个程序,在执行时创建一个新的文本文件。没有什么太复杂的。 在编译程序之后,我注意到它在使用终端执行时按预期创建了一个新文件,但是无法使用双击执行创建新文件。
以下是我使用的代码示例:

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

int main() {
    ofstream outputFile("NewFile.txt");
    outputFile << "Some text";
    outputFile.close();
    printf("File created successfully!\n");
    return 0;
}

为什么会这样?

1 个答案:

答案 0 :(得分:0)

我设法通过以下方式解决问题:

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

int main(int argc,char *argv[]) {

    // dirsep is a pointer to the file name
    char *dirsep = strrchr( argv[0], '/' );
    // If it's not null, set the value to 0, seperating the directory
    // from the file name
    if( dirsep != NULL ) *dirsep = 0;

    // Change the current working directory to the path of the executable
    if(chdir(argv[0]) != 0) printf("The file will be created in the home directory");

    ofstream outputFile("NewFile.txt");
    outputFile << "Some text";
    outputFile.close();
    printf("File created successfully!\n");
    return 0;
}

非常感谢@jogojapan指出我正确的方向。