I am having trouble reading data from a file into a list in a class. It seems like an extra hexadecimal value is being picked up somewhere.
Data: (what I want output to look like) 
Output: (extra 0x4463c4 is randomly included) 
Here is a bit of code i think is relevant. Can anyone advise me of errors I may have made?
Where data is read into program from file (main):
struct filmType { char number[6]; char copy; char title[31]; char rent_id[5]; char rent_date[9]; char return_date[9]; }; orderedList <filmType> orderedList; filmType newItem; //start of struct record filmFile.open("films.txt", ios::in); filmFile >> numFilm; filmFile.get(); while (!filmFile.eof()) { filmData.copy = filmFile.get(); readString(filmFile, newItem.title,30); readString(filmFile, newItem.rent_id,4); readString(filmFile, newItem.rent_date,8); readString(filmFile, newItem.return_date,8); filmFile.get(); orderedList.insert (newItem); readString(filmFile, filmData.number,5); } orderedlist.insert function:(fills list in class)
void orderedList<elemType>::insert(const elemType& newItem) { int index = length - 1; bool found = false; if (length == MAX_LIST) throw string ("List full - no insertion"); // index of rear is current value of length while (! found && index >= 0) if (newItem < list[index]) { list[index + 1] = list [index]; // move item down --index; } else found = true; list [index + 1] = newItem; // insert new item ++length; } Orderedlist.display function: (outputs list to console)
void orderedList<elemType>::display() const { int index; if (length == 0) throw string ("List empty"); for (index = 0; index < length; ++ index) cout << list[index] << endl; } readString:
void readString (fstream & inFile, char * string, int length) { inFile.get (string, length + 1); } Any help is appreciated, let me know if anything needs to be clarified or if more code from the program needs to be seen. Thanks!
readStringis relevant?std::exception.std::logic_errororstd::runtime_errorare obvious candidates.