我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C++文件的数据写入和文件的数据读取怎么实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C++文件的数据写入和文件的数据读取怎么实现

这篇文章主要介绍了C++文件的数据写入和文件的数据读取怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++文件的数据写入和文件的数据读取怎么实现文章都会有所收获,下面我们一起来看看吧。

一:没有数据,准备数据,写入文件

main.cpp

#include<iostream>using namespace std;#include<fstream>#include<string>#include<list>#include"CData.h"#include"CStaff.h" int main(){CData::userInit();//数据初始化return 0;}

CStaff.h

#ifndef CSTAFF_H#define CSTAFF_H#define ADMIN 1#define MANAGER 2#define WAITER 3#include<string>#include<iostream>using namespace std; class Staff{public:Staff();Staff(int id,string name,string pwd,int prole);~Staff();int getId();string getName();string getPwd();int getRole();private:int ID;string name;string pwd;int role;}; #endif

CStaff.cpp

#include"CStaff.h"#include<iostream>using namespace std; Staff::Staff(){} Staff::Staff(int id,string name,string pwd,int prole){this->ID = id;this->name = name;this->pwd = pwd;this->role = prole;} int Staff::getId(){return this->ID;} string Staff::getName(){return this->name;} string Staff::getPwd(){return this->pwd;} int Staff::getRole(){return this->role;} Staff::~Staff(){}

CData.h

#ifndef CDATA_H#define CDATA_H#include<list>#include"CStaff.h" //专门用来做数据准备  文件存储在磁盘中 程序运行在内存中//缓存区 链表 向量    适合什么样的容器class CData{public://静态:不通过对象 属于类 类名::静态成员/静态函数static list<Staff> staffList;static void userInit();      //用户数据初始化}; #endif

CData.cpp

#include"CData.h"#include<fstream>#include<iostream>using namespace std; list<Staff> CData::staffList; //静态成员的初始化 //实现类的静态函数void CData::userInit(){fstream fs;//文件流对象  in从文件中读出 out写入文件 app追加fs.open("user.txt",fstream::in | fstream::out |fstream::app);//目标读文件 文件指示器需要定在开头//如果没有数据 定位到文件尾部 获取文件大小fs.seekg(0, ios::end);//计算文件中的字节数int count = fs.tellg();//创建一个迭代器list<Staff>::iterator it;if(count<=0){cout<<"没有数据,准备数据,写入文件"<<endl;CData::staffList.push_back(Staff(1001,"admin","123",ADMIN));CData::staffList.push_back(Staff(1002,"lily","123",MANAGER));for(it = CData::staffList.begin();it!=CData::staffList.end();it++){//fs写入 每个元素是对象.运算符获取//每个数据一行 用空格隔开fs<<(*it).getId()<<" "<<(*it).getName()<<" "<<(*it).getPwd()<<" "<<(*it).getRole()<<endl;}}}

结果:

C++文件的数据写入和文件的数据读取怎么实现

二:读文件操作

CData.cpp

#include"CData.h"#include<fstream>#include<iostream>using namespace std; list<Staff> CData::staffList; //静态成员的初始化 //实现类的静态函数void CData::userInit(){fstream fs;//文件流对象  in从文件中读出 out写入文件 app追加fs.open("user.txt",fstream::in | fstream::out |fstream::app);//目标读文件 文件指示器需要定在开头//如果没有数据 定位到文件尾部  获取文件大小fs.seekg(0, ios::end);//计算文件中的字节数int count = fs.tellg();//创建一个迭代器list<Staff>::iterator it;if(count<=0){cout<<"没有数据,准备数据,写入文件"<<endl;CData::staffList.push_back(Staff(1001,"admin","123",ADMIN));CData::staffList.push_back(Staff(1002,"lily","123",MANAGER));for(it = CData::staffList.begin();it!=CData::staffList.end();it++){fs<<(*it).getId()<<" "<<(*it).getName()<<" "<<(*it).getPwd()<<" "<<(*it).getRole()<<endl;}}else{//目标读文件 文件指示器定位到开头fs.seekg(0,ios::beg);char buf[256] = {0};int id = 0,role = 0;char pwd[10]={0};char name[10]={0};while(fs.peek()!=EOF)//EOF是读到末尾{//没有读到最后 每一行都读取fs.getline(buf,256);//sscanf读到数据 使用空格进行拆分sscanf(buf,"%d %s %s %d",&id,name,pwd,&role);//拆分出来的数据 放入链表中CData::staffList.push_back(Staff(id,name,pwd,role));}for(it = CData::staffList.begin();it!=CData::staffList.end();it++)//验证是否读对{cout<<(*it).getId()<<" "<<(*it).getName()<<" "<<(*it).getPwd()<<" "<<(*it).getRole()<<endl;}}}

C++文件的数据写入和文件的数据读取怎么实现

结果:读到的是文件中的正确信息

关于“C++文件的数据写入和文件的数据读取怎么实现”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“C++文件的数据写入和文件的数据读取怎么实现”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C++文件的数据写入和文件的数据读取怎么实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C++文件的数据写入和文件的数据读取怎么实现

这篇文章主要介绍了C++文件的数据写入和文件的数据读取怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++文件的数据写入和文件的数据读取怎么实现文章都会有所收获,下面我们一起来看看吧。一:没有数据,准备
2023-07-02

Qt怎么读取和写入配置文件的数据

本篇内容主要讲解“Qt怎么读取和写入配置文件的数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Qt怎么读取和写入配置文件的数据”吧!前言在Qt中如何读取配置文件(.ini)中的数据呢?又是如何
2023-07-05

C#怎么读取和写入文件

在C#中,读取和写入文件通常使用System.IO命名空间中的File类。以下是一个简单的示例代码,展示了如何读取和写入文件:读取文件内容:string filePath = "path/to/your/file.txt";string
C#怎么读取和写入文件
2024-03-06

Java如何利用FileUtils读取数据和写入数据到文件

这篇文章将为大家详细讲解有关Java如何利用FileUtils读取数据和写入数据到文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:一、添加FileUtils依赖