1

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

#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;
}

为什么会这样?

4

1 回答 1

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 为我指明了正确的方向。

于 2012-12-14T03:40:10.330 回答