#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;
}