2

如果我写完整路径(完整路径/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

4 回答 4

9

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

您可以通过以下方式执行此操作:Product -> Scheme -> Edit Scheme -> options tab,勾选使用自定义工作目录复选框并显示您的路径。

于 2013-07-22T02:24:49.597 回答
4

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

于 2011-01-25T17:45:36.907 回答
4

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

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

于 2011-01-25T19:42:48.297 回答
2

假设您在 XCode 中运行文件,工作目录不太可能与 .cpp 文件所在的目录相同。检查您当前的工作目录是什么。(您应该能够通过getcwd调用获得它)

于 2011-01-25T17:44:04.333 回答