Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;:ofstream类将文件保存到哪里?_C++_Macos_File_Io_Codeblocks - Fatal编程技术网

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

C++ C++;:ofstream类将文件保存到哪里?,c++,macos,file,io,codeblocks,C++,Macos,File,Io,Codeblocks,我从Windows移动到Mac,现在我遇到了文件输入/输出类的问题:ifstream&of stream 在Windows中使用g++/代码块运行时 ofstream out("output.txt"); out << "TEST"; out.close(); 流输出的(“output.txt”); out您需要为您试图创建的文件提供完整的绝对路径。流类与所有其他文件打开函数一样,在提供相对路径时使用当前目录。您可以使用类似于chdir的函数来控制当前目录,但更好的解决方案是使用完

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

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

ofstream out("output.txt");
out << "TEST";
out.close();
流输出的
(“output.txt”);

out您需要为您试图创建的文件提供完整的绝对路径。

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

该文件仅在当前工作目录中创建。更改工作目录或提供完整路径。

工作目录最初是在程序启动时设置的。当您从命令行启动它时,您将从shell继承当前工作目录。在代码块中,项目选项之一是调试运行的执行工作目录


(另请参见)

为此,您需要使用操作系统API。在POSIX中,它是CHDIR:我正在做一些C++问题。我有几十个。如果我指定一个绝对路径,程序就不会在Windows上运行。此外,如果我更改目录,它们也不会工作。@Alex Absolute并不意味着常量:-D您当然需要从当前程序位置生成绝对路径。使用argv[0]查看用于执行程序的相对路径。@Let_Me_Be,但是Rob说“更好的解决方案是使用完全限定的文件名”。。。我完全糊涂了。我只需要从可执行文件所在的目录中访问文件。@Alex,我也这么说。关键是您需要为程序的每次运行构造路径。您不能只在代码中添加一些常量。@Alex,您没有抓住要点。停止依赖当前目录。但是,如果您确实必须更改代码块目录,请将其作为一个新问题询问。您已经得到了关于流类将文件放在哪里的答案。在得到答案后改变问题的性质是不受欢迎的,而且往往会赢得反对票。改为发布新问题。检查代码块设置。它可能是在启动应用程序之前设置当前工作目录。即使我从命令行启动它,它仍然会在用户文件夹中创建文本文件。