当前目录的文件路径C++

File path to present dir. C++

本文关键字:C++ 路径 文件 当前目录      更新时间:2023-10-16

我正在一个小C++程序中打开一个ofstream。该文件与程序位于同一目录中。当我使用完整的文件路径打开它时,它工作正常。但是仅使用"file.dat"打开它不起作用。所以我的问题是:如何在不包含其路径的情况下声明文件(或仅文件)的路径?鉴于它是同一个目录。

if(!readTheFile("/Users/mydirect/Desktop/DV1S5U4/DV1S5U4/timelog.dat")){
    cout << "Cant read timelog.dat" << endl;
}

你的代码应该可以工作了。您遇到的问题是您需要设置工作目录,因为我不知道默认值在哪里。

Product > Edit Scheme > Info > Working Directory

在那里你可以设置它。设置好并将.dat放在同一文件夹中后,它就可以工作了。

如果文件确实当前工作目录中,您可以使用"timelog.dat",或者至少在 POSIX 系统上使用 "./timelog.dat" .从它的声音来看,当前的工作目录似乎与您想象的不同。

顺便说一句,请注意,打开文件进行读取不会太好std::ofstream:您可能想尝试std::ifstream .如果在尝试使用std::ofstream打开文件时文件是可写的,则除非您在打开文件时传递了参数std::ios_base::app,否则该文件现在将为空。...如果文件不可写,则使用std::ofstream打开它将失败。

你写道你的文件在"与程序相同的目录中" - 听起来你所追求的不是当前目录,而是可执行文件来自的目录。您可以使用函数_NSGetExecutablePath()在OS X上找到它 - 这只需要缓冲区和缓冲区大小并返回路径。