//設計一個person類,從鍵盤輸入每個人的姓名、身份證號、年齡、地址等數(shù)據,并將每個人的信息保存在目錄//C:下的二進制文件person.dat中,然后將文件中的個人信息讀出來,保存在vector類型的向量中并顯示出來//Eg9-8.cpp#include"iostream"#include"vector"#include"string"#include"fstream"#include"stdlib.h"using namespace std;class Person {public: Person() {}; Person(string _name, string _id, string _age, string _addr){ m_strName = _name; m_strId = _id; m_strAge = _age; m_strAddr = _addr; } void display() { cout << m_strName << "\t" << m_strId << "\t" << m_strAge << "\t" << m_strAddr << endl; }private: string m_strName; string m_strId; string m_strAge; string m_strAddr;};void main() { vector<Person>p; vector<Person>::iterator q; char ch; ofstream out("c:\\person.dat", ios::out | ios::app | ios::binary); string name; string id; string age; string addr; cout << "-----輸入個人檔案-----" << endl << endl; do { cout << "姓名:"; cin >> name; cout << "身份證號:"; cin >> id; cout << "年齡:"; cin >> age; cout << "地址:"; cin >> addr; Person s1(name, id, age, addr); //調用構造函數(shù)創(chuàng)建一個對象s1 out.write((char*)&s1,sizeof(s1));//函數(shù)write()一次插入n個字節(jié)到輸出流中,即一次寫入n字節(jié)內容到文件中 cout << "Enter another person (y/n)?"; cin >> ch; } while (ch == 'y'); out.close(); fstream in("c:\\person.dat", ios::in | ios::binary); Person s2; /*do { in.read((char*)&s2, sizeof(s2)); p.push_back(s2); } while (!in.eof());*/ in.read((char*)&s2,sizeof(s2)); while (!in.eof()) { p.push_back(s2); in.read((char*)&s2, sizeof(s2)); } in.close(); cout << "/n-----輸入個人檔案-----" << endl << endl; //q = p.begin(), for(q = p.begin(); q != p.end(); q++) { (*q).display(); } system("pause");}
0x00DDD8F0 處(位于 test.exe 中)引發(fā)的異常: 0xC0000005: 寫入位置 0x0000001E 時發(fā)生訪問沖突。
qq_渾噩的小生活_03409516
2016-09-14 07:49:55