我创建了一个从文本文件中读取的程序,将组件添加到结构中,并将每个结构元素添加到矢量中。问题在于,出于某种原因,阅读功能似乎根本不起作用。
以下是代码:
_.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
答案 0 :(得分:-1)
我不得不换线
input.open(filename);
到input.open(filename.c_str(),ifstream::in);
让它为我工作。您只会从输入中读取第一个人。