pgmerLA
asked on
ofstream variable issue: doesn't print out everything it reads
Hi, I am having trouble with my ofstream variable at the last part of my code. How can I avoid loosing the information from the ofstream?
The issue is generated by the very last part of the program.
here is the output that I get:
And here is what I should be getting:
Action Movies
Braveheart 1995 A 177 88 8.3 1995 245089
Batman begins 2005 A 140 110 8.3 2005 275523
Comedy Movies
Amelie 2001 C 122 45 8.5 2001 185124
Singin' in the Rain 1952 C 103 77 8.3 1952 56368
Drama Movies
it's a Wonderful Life 1946 D 130 30 8.6 1946 103101
Horror Movies
There are no movies for this genre
Mystery Movies
There are no movies for this genre
Romantic Movies
The Best Years of Our Lives 1946 R 172 181 8.1 1946 17648
Adventure Movies
Lawrence of Arabia 1962 V 216 48 8.5 1962 80746
Western Movies
For a Few Dollars More 1965 W 132 123 8.2 1965 45515
here is the printMovieInfo() from the class
and here is the main code:
Thanks for the help.
The issue is generated by the very last part of the program.
here is the output that I get:
Action Movies
Comedy Movies
Drama Movies
Horror Movies
There are no movies for this genre
Mystery Movies
There are no movies for this genre
Romantic Movies
Adventure Movies
Western Movies
ife 1946 D 130 30 8.6 1946 103101
The Best Years of Our Lives 1946 R 172 181 8.1 1946 17648
Lawrence of Arabia 1962 V 216 48 8.5 1962 80746
For a Few Dollars More 1965 W 132 123 8.2 1965 45515
And here is what I should be getting:
Action Movies
Braveheart 1995 A 177 88 8.3 1995 245089
Batman begins 2005 A 140 110 8.3 2005 275523
Comedy Movies
Amelie 2001 C 122 45 8.5 2001 185124
Singin' in the Rain 1952 C 103 77 8.3 1952 56368
Drama Movies
it's a Wonderful Life 1946 D 130 30 8.6 1946 103101
Horror Movies
There are no movies for this genre
Mystery Movies
There are no movies for this genre
Romantic Movies
The Best Years of Our Lives 1946 R 172 181 8.1 1946 17648
Adventure Movies
Lawrence of Arabia 1962 V 216 48 8.5 1962 80746
Western Movies
For a Few Dollars More 1965 W 132 123 8.2 1965 45515
here is the printMovieInfo() from the class
void movieType::printMovieInfo(char* outFileName)
{
std::ofstream outFile;
if(!outFile.is_open())
outFile.open(outFileName, std::ios::app);
outFile<<name<<" "<<year<<" "<<genre<<" "<<length<<" "<<rank;
outFile<<" "<<weight<<" "<<year<<" "<<votes<<std::endl;
}
and here is the main code:
#include "movieType.h"
#include <iostream>
#include <fstream>
#include <string>
#include "PQType.h"
//typedef movieType ItemType;
#include "QueType.h"//FIFO queue
using namespace std;
int main()
{
movieType movie[9];
ifstream inFile("movie1.txt");
ofstream outFile("printList.txt");
int i =0;
bool notDone=true;
while (notDone)
{
if (movie[i++].readMovieInfo(inFile)== false)
notDone=false;
}
PQType<movieType> PQqueue(8);
int j=0;
while(!PQqueue.IsFull())
{
PQqueue.Enqueue(movie[j++]);
}
QueType<movieType> fifoQueue[8];
string Genre[8]={"Action", "Comedy", "Drama", "Horror", "Mystery", "Romantic", "Adventure","Western"};
movieType it;
while (!PQqueue.IsEmpty())
{
PQqueue.Dequeue(it);
if (it.getGenre() == 'A')
fifoQueue[0].Enqueue(it);
else if (it.getGenre() == 'C' )
fifoQueue[1].Enqueue(it);
else if (it.getGenre() == 'D')
fifoQueue[2].Enqueue(it);
else if (it.getGenre() == 'H')
fifoQueue[3].Enqueue(it);
else if (it.getGenre() == 'M')
fifoQueue[4].Enqueue(it);
else if (it.getGenre() == 'R')
fifoQueue[5].Enqueue(it);
else if (it.getGenre() == 'V')
fifoQueue[6].Enqueue(it);
else if (it.getGenre() == 'W')
fifoQueue[7].Enqueue(it);
}
//THE PROBLEM IS GENERATE HERE
movieType ij;
for (int i=0;i<8;++i)
{
outFile<<Genre[i]<<" Movies"<<endl;
if (fifoQueue[i].IsEmpty())
outFile<<"There are no movies for this genre"<<endl;
for(int j=0; fifoQueue[i].IsEmpty() != true; ++j)
{
fifoQueue[i].Dequeue(ij);
ij.printMovieInfo("printList.txt");
}
outFile<<endl;
}
return 0;
}
Thanks for the help.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER