Vì vậy, tôi đang thử nghiệm để thêm tên và họ vào danh sách được liên kết kép. Tôi có một tệp văn bản có độ dài khác nhau với định dạng "chuỗi, chuỗi" và đang sử dụng danh sách> để lưu trữ dữ liệu của tôi.nhầm lẫn về danh sách và cặp
Tôi đang sử dụng mã này:
typedef std::list< std::pair<string,string> > listPair;
...
list<pair<string, string> > mylist;
ifstream myFile;
myFile.open("20.txt");
pair<string, string> stuff;
while (myFile >> stuff.first >> stuff.second)
{
mylist.push_back(stuff);
}
listPair::iterator iter = mylist.begin();
for(;iter != mylist.end();iter++)
{
string s = (*iter).first;
cout << s << endl;
string c = (*iter).second;
cout << c << endl;
}
bây giờ vấn đề tôi đang gặp là trước hết, mục cuối cùng trong danh sách không được bổ sung. giống như mọi tập tin chỉ bỏ lỡ dòng kết thúc, vì vậy đó là một chút khó hiểu.
Ngoài ra, tôi đang thực hiện "mylist.size()" để đảm bảo tất cả các tên đã được thêm vào, và điều này gây nhầm lẫn cho tôi vì nói một tệp văn bản có 99 tên, tức là 99 dòng văn bản (không quên nó chỉ đọc trong 98 do thiếu dòng cuối cùng) rằng danh sách có kích thước 48.
TẠI SAO 48? Có điều gì đó cần làm vì tôi đã thực hiện các cặp, điều này sẽ không có ý nghĩa như thể nó không đọc theo cặp sẽ thực sự gấp đôi, vì các cặp chỉ lấy tên và họ là một giá trị.
Tâm boggling với tôi.
một lần nữa cảm ơn sự giúp đỡ của bạn!
Có thể bạn đang tìm kiếm 'getline'? –
Cũng giống như một lưu ý phụ, như một container đa năng, bạn nên sử dụng 'vector' thay vì' danh sách'. Từ cách bạn đang sử dụng nó, tôi không thấy sự cần thiết cho một 'danh sách' ở đây. –
Bạn có thể thêm tệp đầu vào '20.txt' (hoặc ít nhất một trích xuất) không? Có thể đầu vào của bạn không được định dạng đúng. – Zeta