- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7讲 基于C++流类库的 文件输入输出 本讲主要内容 1. 基于C++流类库的文本文件的读写 2. 基于C++流类库的二进制文件的读写 3. C++程序的结构 【例6-1】 文本文件的读写 在本例中,定义了3个学生对象Student1、Student2和Student3。首先进行了打开文件操作,将这些学生对象的信息以文本数据的形式写入了文本文件“StudentInfo.txt”,再通过读取该文件,将这些信息读入了另外3个学生对象Student1_1、Student2_1和Student3_1中,最后将Student1_1、Student2_1和Student3_1的信息进行了输出。 #include iostream #include fstream using namespace std; class CDate { int m_nYear; int m_nMonth; int m_nDay; public: CDate(int nYear, int nMonth, int nDay); int GetYear(); int GetMonth(); int GetDay(); }; …… class CPerson { protected: char* m_strName; char* m_strID; char m_cSex; CDate m_Birthday; public: CPerson(char* strName = , char* strID = , char cSex = 0, int nYear =0, int nMonth = 0, int nDay = 0); ~CPerson(); void SetName(char* strName); void GetName(char* strName) const; …… virtual void PrintInfo() = 0; virtual void WriteFile(ofstream fs) = 0; //数据写入文件 virtual void ReadFile(ifstream fs) = 0; //从文件中读取数据 }; …… class CStudent: public CPerson { static unsigned long m_nCount; private: char *m_strMajor; public: CStudent(char* strName = , char* strID = , char cSex = 0, int nYear = 0, int nMonth = 0, int nDay = 0, char* strMajor = ); ~CStudent(); void SetMajor(char* strMajor); void GetMajor(char* strMajor) const; void Copy(CStudent Student); static unsigned long GetCount() ; virtual void PrintInfo(); void WriteFile(ofstream fs); //数据写入文件 void ReadFile(ifstream fs); //从文件中读取数据 }; …… void CStudent::WriteFile(ofstream fs) { fsm_strName\nm_strID m_cSex m_Birthday.GetYear() m_Birthday.GetMonth() m_Birthday.GetDay() m_strMajorendl; } void CStudent::ReadFile(ifstream fs) { int nYear, nMonth, nDay; char strName[256], strID[12], strMajor[256]; fs.getline(strName, 256); fsstrIDm_cSexnYearnMonthnDay; fs.getline(strMajor, 256); delete [] m_strName; m_strName = new char[strlen(strName)+1]; strcpy(m_strName, strName); delete [] m_strID; m_strID =
文档评论(0)