#include <iostream> #include <list> #include <fstream> using namespace std; typedef struct { string author; string book; unsigned short published; float price; string category; } Bookshelf; list<Bookshelf> bookshelf; void add(string author, string book, unsigned short published, float price, string category) { Bookshelf item = *(new Bookshelf()); item.author = author; item.book = book; item.published = published; item.price = price; item.category = category; bookshelf.push_back(item); } void freemem(void) { bookshelf.clear(); } int main(void) { add("Vasilij Pupkin", "Kniga", 1990, 20, "Hlam"); add("Tester", "testie", 1991, 10.5, "Hlam"); // write out ofstream out("output.txt"); for (auto book: bookshelf) { out << book.author << endl << book.book << endl << book.published << endl << book.price << endl << book.category << endl; } freemem(); out.flush(); out.close(); // read in string author, book, published, price, category; ifstream in("output.txt"); while (!in.eof()) { if (getline(in, author) && getline(in, book) && getline(in, published) && getline(in, price) && getline(in, category)) { add(author, book, stoi(published), stof(price), category); } } in.close(); // list for (auto book: bookshelf) { cout << "Author: " << book.author << endl << "Book: " << book.book << endl << "Published: " << book.published << endl << "Price: " << book.price << endl << "Category: " << book.category << endl << endl; } freemem(); return 0; }