当前目录的文件路径C++
File path to present dir. C++
我正在一个小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上找到它 - 这只需要缓冲区和缓冲区大小并返回路径。
相关文章:
- 如何将更多文件夹添加到c++include路径
- 带有特殊路径部分的"std::filesystem::weakly_canonical"失败
- C++A*算法并不总是在路径中具有目标节点
- 从函数角度看ID到文件路径的内部与外部映射
- boost xml parsingl将xml的路径作为变量发送
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- 如何使用cppcheck处理半相对包含路径
- 在C++中设置基于操作系统的文件路径
- 基于编译器选项的编译二进制路径
- 按边长度递归搜索图中所有可行路径
- 使用变量值作为 PlaySound 中的路径
- 如何转换真实路径 CString c++
- 从 GUID 获取 USB 卷路径
- 查找 GCD:并非所有控制路径都返回值
- C++17 文件系统::remove_all 带有通配符路径
- 在带有尾部斜杠的路径上返回 std::filesystem::create_directories() 的值
- 获取当前正在运行的 exe 名称(不是路径)
- 如何从 Skia 路径几何体中获取网格?
- CMake 错误"源似乎不包含 CMakeLists.txt",路径/库连接问题
- VS Code C++:不准确的系统包括路径错误(wchar.h,boost/lambda/lambda.hpp)