我正在编写一个程序,在执行时创建一个新的文本文件。没有什么太复杂的。
在编译程序之后,我注意到它在使用终端执行时按预期创建了一个新文件,但是无法使用双击执行创建新文件。
以下是我使用的代码示例:
#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;
}
为什么会这样?
答案 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指出我正确的方向。