Hi, I am doing a assignment in which I have to create classes to store information about my books. However it is not working because I am getting crazy output and I don't know what's wrong. I keep on trying different things but I cannot get it to work. I'd appreciate it if someone could look at it. I think the problem may lie in the data file, but I'm not sure. Here is my program:
Code:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
const int SIZE = 15;
ifstream file_in;
ofstream file_out;
class cover {
      public:
             string title;
             string first;
             string last;
};

class inside {
      public:
             
             string genre;
             string publisher;
             int year;
             int pagenums;
};

class book {
      public:
             cover coverinfo;
             inside insideinfo;
};
void readdata (book [], int &);
void printdata (book [], int);
int main () 
{
    int n;
    book library [SIZE];
    
    file_in.open ("program8in.dat");
    file_out.open ("program8.out");
    
    readdata (library, n);
    printdata (library, n);
    
    
    return 0;
}
void readdata (book library [], int &n)
{
     file_in >> n;
     
     
     for (int count = 0; count < n; count++) {
         file_in >> library[count].coverinfo.title;
         file_in >> library[count].coverinfo.first;
         file_in >> library[count].coverinfo.last;
         file_in >> library[count].insideinfo.genre;
         file_in >> library[count].insideinfo.publisher;
         file_in >> library[count].insideinfo.year;
         file_in >> library[count].insideinfo.pagenums;
     
     }
     return;
}
void printdata (book library [], int n)
{
     for (int count= 0; count < n; count++) {
         file_out << "\t" << library[count].coverinfo.title;
         file_out << "\t" << library[count].coverinfo.first;
         file_out << "\t" << library[count].coverinfo.last;
         file_out << "\t" << library[count].insideinfo.genre;
         file_out << "\t" << library[count].insideinfo.publisher;
         file_out << "\t" <<library[count].insideinfo.year;
         file_out << "\t" << library[count].insideinfo.pagenums;
     }
     return;
}
This is my data file:

Code:
7
Harry Potter
JK 
Rowling 
SciFi 
Scholastic 
2003 
870
And this is my output:

Code:
Harry	Potter	JK	Rowling	SciFi	205936	196984						196984	196984						27	512						152	-2141497075						-445879994	2358840						198376	2089878893						211408	211408
I'm sorry about the length, I know it's rather long but I'm stuck.