无法从Mac上的C ++程序读取文件

时间:2011-08-16 11:08:56

标签: c++ file-io readfile file-not-found

首先,这是我的代码的一部分:

....
string input;
getline(cin, input);

ifstream openFile;
openFile.open(input.c_str(), ios::in);

if(openFile.is_open()){
    cout << "File opened" << endl;
}  
else {
    cout << "Cant open the file " << endl;
}

结果总是“无法打开文件”。我非常非常确定文件是否存在。我在同一目录中有data1.txt,data2.txt ... data10.txt(我使用XCode添加新的空文件,在里面添加数据并保存)。

我做另一个测试,我创建一个新目录,复制粘贴cpp和数据文件。我在终端运行,它工作,它可以读取数据文件。为什么xcode无法读取我的数据文件?有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您需要提供文件的完整路径。 Xcode将从构建目录运行应用程序,而不是代码所在的目录。

如果在构建OSX或iOS应用程序时复制文件,您应该查看bundle structure以查找目录。

答案 1 :(得分:1)

您可以告诉Xcode从包含数据文件的目录中运行可执行文件。

打开目标可执行文件的信息对话框,并将“将工作目录设置为:”更改为项目目录或自定义目录'