使用.open与ifsteam对象的问题

时间:2011-12-23 04:35:30

标签: c++ io

解释我的问题的最佳方法可能只是向您展示我的代码,因为它很简单。

#include <iostream>
#include <fstream>

int main (int argc, const char * argv[])
{

    std::ifstream in;
    std::string line;
    in.open("test.txt");
    if (in.fail()) std::cout << "failed. \n";
    getline(in, line);
    std::cout << line;

    return 0;
}

所以当我运行它时,控制台正在返回&#34;失败。&#34;而不是打开名为test.txt的文件 - 它与我的.xcodeproj文件位于同一文件夹中,也显示在我的Xcode导航器中。

我不确定我对这个过程有什么误解,但我怀疑它会变得简单。

谢谢! :)

1 个答案:

答案 0 :(得分:3)

该文件与.xcodeproj文件位于同一目录中?嗯,这就是你的问题。

默认情况下,从Xcode启动的进程的工作目录将是输出目录(即程序所在的目录)。根据您的Xcode版本,它可能会在<Project Directory>/build/Debug

尝试在那里移动文件。