实验项目名称:输入输出流
实验项目名称:输入输出流
一、实验目的
- 掌握文本文件和二进制文件的基本访问方法;
- 了解一般I/O流和文件流的关系;了解文件与文件流的关系;
- 了解文件系统的概念,包括文件指针和关于文件的操作;
- 掌握文件类的定义和相关操作的定义、使用方法;
- 掌握利用常用函数进行文件的打开、关闭、读写、定位等操作。
二、实验内容
定义一个Dog类,包括体重和年龄两个数据成员及其成员函数,声明一个实例dog1,体重5,年龄10,使用I/O流把dog1的状态写入磁盘文件。
再声明一个实例dog2,通过读取文件dog1的状态赋给dog2。分别用文本方式和二进制方式操作文件。
三、实验代码
文本文件:
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 class Dog { 5 public: 6 Dog (int weight = 0, int age = 0) : Weight (weight), Age (age) {} 7 int getW() { 8 return Weight; 9 } 10 int getA() { 11 return Age; 12 } 13 int Weight; 14 int Age; 15 }; 16 17 int main () { 18 Dog dog1 (5, 10); 19 20 fstream ofs ("work1.txt", ios::out); 21 ofs << dog1.getW() << endl << dog1.getA() << endl; 22 ofs.close(); 23 24 int w, a; 25 fstream ifs ("work1.txt", ios::in); 26 ifs >> w >> a; 27 ifs.close(); 28 29 Dog dog2 (w, a); 30 31 cout << dog1.Weight << ' ' << dog1.Age << endl; 32 cout << dog2.Weight << ' ' << dog2.Age << endl; 33 34 return 0; 35 }
二进制文件:
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 class Dog { 5 public: 6 Dog (int weight = 0, int age = 0) : Weight (weight), Age (age) {} 7 int getW() { 8 return Weight; 9 } 10 int getA() { 11 return Age; 12 } 13 int Weight; 14 int Age; 15 }; 16 17 int main () { 18 Dog dog1 (5, 10); 19 20 fstream ofs ("work2.txt", ios::out | ios::binary); 21 ofs .write ((const char *)&dog1, sizeof (Dog)); 22 ofs.close(); 23 24 int w = 0, a = 0; 25 Dog dog2 (w, a); 26 fstream ifs ("work2.txt", ios::in | ios::binary); 27 ifs.read ((char *)&dog2, sizeof (Dog)); 28 ifs.close(); 29 30 cout << dog1.Weight << ' ' << dog1.Age << endl; 31 cout << dog2.Weight << ' ' << dog2.Age << endl; 32 33 return 0; 34 }
四、测试截图
文本文件:
二进制文件:
五、心得体会
掌握了简单的文件操作,对文件以文本形式和二进制形式进行读和写,简单认识了fstream流。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)