正确提取到矢量

时间:2016-02-11 10:48:01

标签: c++

我创建了一个从文本文件中读取的程序,将组件添加到结构中,并将每个结构元素添加到矢量中。问题在于,出于某种原因,阅读功能似乎根本不起作用。

以下是代码:

_.debounce

文本文件中的行如下所示:

struct address
{
    string street;
    int zip;
    string city;
};

struct person
{
    string name;
    string id;
    address location;
};

istream & operator >>(istream & in, person & p)
{
    getline(in, p.name);
    getline(in, p.id);
    getline(in, p.location.street);

    return in;
}

void read_file(string filename)
{
    vector<person> persons;
    ifstream input;
    input.open(filename);

    if (!input.is_open())
    {
        cout << "File Not Found" << endl;
    }

    person temp;
    input >> temp;
    persons.push_back(temp);
    input.close();

    if (persons.size() == 0)
    {
        cout << "The are no contacts" << endl;
    }
    else cout << "There are" << " " << persons.size() << " " << "contacts in the file" << endl;
}

当我说它不起作用时,我的意思是读取函数不会显示向量中是否有元素。

这是文本文件:names.txt

主要代码:

Test Name Surname
Id 1234567890
Adress, postcode, city

1 个答案:

答案 0 :(得分:-1)

我不得不换线 input.open(filename);input.open(filename.c_str(),ifstream::in);让它为我工作。您只会从输入中读取第一个人。