无法打开文件流c ++

时间:2015-06-03 20:15:28

标签: c++ fstream

我正在使用Xcode,我无法打开文件流来从文本文件中分配变量。我推测将txt文件放在与项目相同的目录中将允许我打开流而不包括整个目录。我一直在弄乱这一点,但无济于事我可以让它正常工作。我相信我能够一次读取数据,但我认为打印的字符串是unicode(不确定)。这是一个非常简单的程序..我认为它会起作用。 我认为我的问题与示例所在的目录以及Xcode如何与项目文件一起使用有关。我只是将示例文件放在项目文件夹中,并希望它能够正常工作。

#include <iostream>
#include <fstream>
#include <string>

using namespace std;
int main()
{
    string name;
    ifstream infile;
    infile.open("example.txt");
    if(infile.is_open())
    {
        infile >> name;
    }
    else
        cout << "Unable to open file";

    cout << name;
    return 0;
}

1 个答案:

答案 0 :(得分:3)

首先,请记住,工作目录并不总是与程序的二进制文件所在的目录相同。

变化:

infile.open("example.txt");

为:

infile.open("/full/path/to/program/directory/example.txt");

其中/full/path/to/program/directory/是文件夹的位置,其中放置了程序(以及example.txt文件)。它应该解决这个问题。

顺便说一下,您可能还想阅读this question,它解决了非常类似的问题。

另请阅读getcwd() function