Open方法打开只有完整路径C ++的文件

时间:2011-01-25 17:41:20

标签: c++ xcode file-io ifstream

如果我写完整路径(full-path / roots.txt),

文件会打开。 如果我只写文件名(roots.txt)

,文件无法打开

然而,roots.txt与main.cpp位于同一个文件夹中。 我应该在XCode上查看任何设置吗?

以下是代码:

    string line;
ifstream infile;
infile.clear();
// infile.open("roots.txt");
infile.open("/Users/programming/C++/roots/roots.txt");
if (infile.fail()) cout << "could not open the file: " << strerror(errno);
getline(infile, line);
cout << line;

4 个答案:

答案 0 :(得分:9)

默认情况下,Xcode工作目录类似于~/Library/Developer/Xcode/DerivedData/project-/Build/Products/Debug.因此,如果您尝试使用与项目目录相关的相对路径,则应在Xcode中手动配置工作目录。

您可以通过以下方式执行此操作:产品 - &gt;方案 - &gt;编辑方案 - &gt;选项标签,勾选使用自定义工作目录复选框并显示您的路径。

答案 1 :(得分:4)

如果在尝试打开具有绝对路径的文件时它有效并且仅使用文件名失败,则您的相对路径可能不正确。确保将roots.txt放在当前工作目录中。查看getcwd中声明的unistd.h函数。

答案 2 :(得分:4)

要在XCode内部运行时更改工作目录:在“项目”菜单中选择“编辑活动可执行文件”。

您可以在“常规”部分底部调整工作目录设置。

答案 3 :(得分:2)

假设您正在从XCode中运行文件,则工作目录不太可能与.cpp文件所在的目录相同。检查您当前的工作目录是什么。 (您应该可以使用getcwd电话获取