实验项目名称:输入输出流

实验项目名称:输入输出流

一、实验目的

  1. 掌握文本文件和二进制文件的基本访问方法;
  2. 了解一般I/O流和文件流的关系;了解文件与文件流的关系;
  3. 了解文件系统的概念,包括文件指针和关于文件的操作;
  4. 掌握文件类的定义和相关操作的定义、使用方法;
  5. 掌握利用常用函数进行文件的打开、关闭、读写、定位等操作。  

二、实验内容

  定义一个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流。

posted @   yunguixue  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示