我已經制作了一個程序,它從文本文件中讀取數據,向結構中添加組件並將每個結構元素添加到矢量中。問題是,由於某種原因,閱讀功能似乎根本不起作用。正確提取到矢量
下面是代碼:
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;
}
在文本文件看起來像這樣的臺詞:
Test Name Surname
Id 1234567890
Adress, postcode, city
當我說這是行不通的我指的是讀取功能不顯示,如果有是向量中的元素。
這裏是文本文件:names.txt
主要代碼:
int _tmain(int argc, _TCHAR* argv[])
{
const string filename = "C://Users/TEMP/Desktop/lab1/names.txt";
int userinput = 0;
while (true)
{
cout << "Menu: \n1) Sök del av personnamn\n2) Sök stader\n3) Exit" << endl;
cin >> userinput;
cout << endl;
if (userinput == 1)
{
namnsok;
}
else if (userinput == 2)
{
stadsok;
}
else if (userinput == 3)
{
break;
}
}
return 0;
}
請提供幾行輸入文件和比「不工作」更精確的問題 – UmNyobe
似乎在我的機器上運行良好。請提供輸入文件。 –
@AdiLevin我沒有收到任何編譯錯誤,但它不顯示是否有元素。 –