C++:ofstream类将文件保存到哪里?

Ale*_*lex 4 c++ io macos file codeblocks

我从Windows迁移到Mac,现在我遇到了文件输入/输出类的问题:ifstream&ofstream.

在Windows中使用g ++ /代码块运行时

ofstream out("output.txt");
out << "TEST";
out.close();
Run Code Online (Sandbox Code Playgroud)

将在同一目录中创建一个新文件"output.txt" .

但是在MAC OS X中,此文件是在我的主目录中创建的:/Users/USER_NAME/output.txt

如何将此文件与可执行文件一起放在同一目录中?

PS我正在使用GCC和CodeBlocks.没有项目 - 我只是编译一个源文件.

Rob*_*edy 5

与所有其他文件打开函数一样,流类在提供相对路径时使用当前目录.您可以使用类似函数控制当前目录,但更好的解决方案是使用完全限定的文件名.然后删除程序对当前目录的依赖性.chdir

  • @Alex,你错过了这一点.停止依赖当前目录.但是,如果您真的必须更改代码块目录,那么请将其作为*新问题*.您已经得到了关于流类放置文件的位置的答案.在你得到答案后改变问题的性质是不受欢迎的,并且往往会获得负面投票.发布一个新问题. (2认同)