文件路径显示目录。 C ++

时间:2014-01-08 22:00:36

标签: c++

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

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

3 个答案:

答案 0 :(得分:0)

您的代码应该有效。您遇到的问题是您需要设置工作目录,因为我不知道默认位置。

Product > Edit Scheme > Info > Working Directory

你可以设置它。一旦你设置了它并将.dat放在同一个文件夹中就可以了。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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