#include <fstream>
#include <string>
#include <iostream>
#include <stdio.h>
using namespace std;
class Car {
 private:
  string carNm;
  char carNum[20];
 public:
  void getCarData() {
    cout << "car Name: ";
    cin >> carNm;
    cout << "car Number: ";
    cin >> carNum;
    cin.ignore();
  }
  void displayCarData() {
    cout << "\nCar Name: " << carNm;
    cout << "\nCar Number: " << carNum;
    cout << "\n-----------------------------------------------\n";
  }
  int storeCar();
  void viewAllCars();
};
int Car::storeCar() {
  if (carNm == "" && carNum == "") {
    cout << "car data not initialized";
    return 0;
  }
  ofstream f;
  f.open("car.txt", ios::out | ios::app);
  f.write((char*)this, sizeof(*this));
  f.close();
  return 1;
}
void Car::viewAllCars() {
  ifstream fin;
  fin.open("car.txt", ios::in | ios::app);
  if (!fin) {
    cout << "File not found";
  } else {
    fin.seekg(0);
    fin.read((char*)this, sizeof(*this));
    while (!fin.eof()) {
      displayCarData();
      fin.read((char*)this, sizeof(*this));
    }
    fin.close();
  }
}
int main() {
  Car c;
  c.getCarData();
  c.storeCar();
  c.viewAllCars();
  system("PAUSE");
  return 0;
}
Error Message: Unhandled exception at 0x0fabad7a (msvcp100d.dll) in file2.exe: 0xC0000005: An access violation occurred while loading location 0x00214afc.
what could be causing this error? Storing data into file works fine. However this happens while reading from the file. I am using Visual studio 2010.