C++之文件操作

embedded/2024/11/13 23:38:38/

文件分类


文本文件:以 ASCII码 存储

二进制文件:以 二进制 形式存储

操作文件:


1. ofstream:写操作
2. ifstream: 读操作
3. fstream : 读写操作

写文件


1. 包含头文件   

     #include <fstream>

2. 创建流对象  

   ofstream ofs;

3. 打开文件

   ofs.open("文件路径",打开方式);

4. 写数据

   ofs << "写入的数据";

5. 关闭文件

   ofs.close();

#include<iostream>
using namespace std;
#include<fstream>int main()
{ofstream ofs;ofs.open("test.txt", ios::out);ofs << "姓名:张三" << endl;ofs << "性别:男" << endl;ofs << "年龄:18" << endl;ofs.close();system("pause");return 0;
}

读文件


1. 包含头文件   

     #include <fstream>

2. 创建流对象  

   ifstream ifs;

3. 打开文件并判断文件是否打开成功

   ifs.open("文件路径",打开方式);

4. 读数据

   四种方式读取

5. 关闭文件

   ifs.close();

#include<iostream>
using namespace std;
#include <fstream>
#include <string>void tet()
{ifstream ifs;ifs.open("test.txt", ios::in);if (!ifs.is_open()){cout << "文件打开失败" << endl;return;}//第一种char buf[1024] = { 0 };while (ifs >> buf){cout << buf << endl;}//第二种char buf[1024] = { 0 };while (ifs.getline(buf,sizeof(buf))){cout << buf << endl;}//第三种string buf;while (getline(ifs, buf)){cout << buf << endl;}//第四种char c;while ((c = ifs.get()) != EOF){cout << c;}ifs.close();}int main() {tet();system("pause");return 0;
}

二进制文件


打开方式要指定为 ios::binary

二进制 写文件 


二进制方式写文件主要利用流对象调用成员函数write

函数原型 :ostream& write(const char * buffer,int len);

字符指针buffer:指向内存中一段存储空间。

len:读写的字节数

#include <fstream>
#include <string>class Person
{
public:char m_Name[64];int m_Age;
};//二进制文件  写文件
void test01()
{//1、包含头文件//2、创建输出流对象ofstream ofs("person.txt", ios::out | ios::binary);//3、打开文件//ofs.open("person.txt", ios::out | ios::binary);Person p = {"张三"  , 18};//4、写文件ofs.write((const char *)&p, sizeof(p));//5、关闭文件ofs.close();
}int main() {test01();system("pause");return 0;
}

二进制 读文件


二进制方式读文件主要利用流对象调用成员函数read

函数原型:istream& read(char *buffer,int len);

 

#include <fstream>
#include <string>class Person
{
public:char m_Name[64];int m_Age;
};void test01()
{ifstream ifs("person.txt", ios::in | ios::binary);if (!ifs.is_open()){cout << "文件打开失败" << endl;}Person p;ifs.read((char *)&p, sizeof(p));cout << "姓名: " << p.m_Name << " 年龄: " << p.m_Age << endl;
}int main() {test01();system("pause");return 0;
}

http://www.ppmy.cn/embedded/115070.html

相关文章

JVM 调优篇7 调优案例4- 线程溢出

一 线程溢出 1.1 报错信息 每个 Java 线程都需要占用一定的内存空间&#xff0c;当 JVM 向底层操作系统请求创建一个新的 native 线程时&#xff0c;如果没有足够的资源分配就会报此类错误。报错信息&#xff1a;java.lang.outofmemoryError:unable to create new Native Thr…

鸿蒙Harmony应用开发,数据驾驶舱页面的实现

先来看看我们要实现的驾驶舱的页面是什么样的 对于这种 响应式布局的页面构建&#xff0c;我们的脑子里面要有一个概念&#xff0c;就是"分而治之"。我们把这个页面进行分割&#xff0c;分割成不同的块然后再来逐个实现. 不难发现&#xff0c;我们可以将这个看到的效…

【hot100-java】【组合总和】

R8-回溯篇 印象题&#xff0c;很基本的回溯 class Solution {void backtrack(List<Integer> state,int target,int[] choices,int start,List<List<Integer>> ret){//子集和等于target&#xff0c;记录解if (target0){ret.add(new ArrayList<>(state)…

未来视界,触手可及:bigmp4 引领 AI 视频处理新革命

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;技术已经渗透到我们生活的方方面面&#xff0c;从智能助手到自动驾驶&#xff0c;AI 正在改变着世界。而在视频处理领域&#xff0c;bigmp4 的横空出世&#xff0c;无疑为视频爱好者和专业人士带来了一场革命…

LabVIEW提高开发效率技巧----采用并行任务提高性能

在复杂的LabVIEW开发项目中&#xff0c;合理利用并行任务可以显著提高系统的整体性能和响应速度。并行编程是一种强大的技术手段&#xff0c;尤其适用于实时控制、数据采集以及多任务处理等场景。LabVIEW的数据流编程模型天然支持并行任务的执行&#xff0c;结合多核处理器的硬…

Python办公自动化案例(四):将Excel数据批量保存到Word表格中

案例:将excel数据批量保存到Word表格中 要将Excel数据批量保存到Word表格中,可以使用Python的openpyxl库来读取Excel文件,以及python-docx库来创建和编辑Word文档。以下是一段示例代码,以及代码解释和一些注意事项。 准备好的Excel数据: 1.安装所需库 首先,确保你已经…

/etc/sudoers文件中的哪些配置会影响系统安全?

/etc/sudoers 文件中的配置对系统安全有很大影响 用户权限配置&#xff1a;允许哪些用户使用 sudo 执行特权命令。如果配置不当&#xff0c;可能导致未经授权的用户获得管理员权限。 例如&#xff1a; root ALL(ALL:ALL) ALL %admin ALL(ALL) ALL %sudo ALL(ALL:ALL) ALL…

硬件工程师笔试面试——变压器

目录 9、变压器 9.1 基础 变压器原理图 变压器实物图 9.1.1 概念 9.1.2 变压器组成结构 9.1.3 变压器原理 9.1.4 变压器的类型 9.1.5 应用领域 9.2 相关问题 9.2.1 变压器的工作原理是什么? 9.2.2 如何选择合适的变压器类型? 9.2.3 变压器在实际应用中,如何进行…