当前位置: 首页 > news >正文

C++ 文件操作

C++中对文件操作需要包含头文件 ==< fstream >==
文件类型分为两种:
1 . 文本文件 - 文件以文本的**ASCII码**形式存储在计算机中
2 . 二进制文件 - 文件以文本的**二进制**形式存储在计算机中,用户一般不能直接读懂它们
操作文件的三大类:
1 . ofstream:写操作
2 . ifstream: 读操作
3 . fstream : 读写操作

1.文本文件

写文件

写文件步骤如下:
1 . 包含头文件

#include<fstream>

2 . 创建流对象
ofstream ofs;
3 . 打开文件
ofs.open("文件路径",打开方式);
4 . 写数据
ofs << "写入的数据";
5 . 关闭文件
ofs.close();

文件打开方式:

文件打开方式:
ios::in     为读文件而打开文件
ios::out   为写文件而打开文件
ios::ate   初始位置:文件尾
ios::app   追加方式写文件
ios::trunc 如果文件存在先删除,再创建
ios::binary 二进制方式
注意: 文件打开方式可以配合使用,利用|操作符
例如:用二进制方式写文件 ios::binary | ios:: out

读文件

读文件与写文件步骤相似,但是读取方式相对于比较多
读文件步骤如下:
1 . 包含头文件
#include
2 . 创建流对象
ifstream ifs;
3 . 打开文件并判断文件是否打开成功
ifs.open("文件路径",打开方式);
4 . 读数据
四种方式读取
5 . 关闭文件
ifs.close();

#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main() {
//    ofstream outFile;
//    outFile.open("./123test.txt",ios::out);
//    outFile<<"Hello World!"<<endl;
//    outFile<<"Welcome to C++ Programming!"<<endl;
//    outFile.close();
//    cout<<"File written successfully!"<<endl;ifstream inFile;inFile.open("./123test.txt",ios::in);if(!inFile.is_open()){cout<<"Error! File not found!"<<endl;}char c[1024];while(inFile.getline(c,sizeof(c))){cout<<c;}return 0;
}

读文件的方式有很多:

//第一种方式
//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();

总结:
● 读文件可以利用 ifstream ,或者fstream类
● 利用is_open函数可以判断文件是否打开成功
● close 关闭文件

2.二进制文件

写文件

以二进制的方式对文件进行读写操作
打开方式要指定为 ==ios::binary==

二进制方式写文件主要利用流对象调用成员函数write
函数原型 : ostream& write(const char * buffer,int len);
参数解释:字符指针buffer指向内存中一段存储空间。len是读写的字节数

#include<iostream>
#include<fstream>
#include<string>
using namespace std;
class Person{public:char name[20];int age;
};
int main() {
//  1.引入头文件
//  2.创建输出流对象ofstream ofs("Person.txt", ios::out | ios::binary);
//    或者  ofstream ofs;
//    ofs.open("Person.txt", ios::out | ios::binary);
//    3.创建对象Person p={"David", 25};
//    4.写入文件ofs.write((const char *)&p, sizeof(p));
//    5.关闭文件ofs.close();return 0;
}

读文件

二进制方式读文件主要利用流对象调用成员函数read
函数原型: istream& read(char *buffer,int len);
参数解释:字符指针buffer指向内存中一段存储空间。len是读写的字节数

#include<iostream>
#include<fstream>
#include<string>
using namespace std;
class Person{public:char name[20];int age;
};
int main() {1.引入头文件2.创建输出流对象
//    ofstream ofs("Person.txt", ios::out | ios::binary);或者  ofstream ofs;ofs.open("Person.txt", ios::out | ios::binary);3.创建对象
//    Person p={"David", 25};4.写入文件
//    ofs.write((const char *)&p, sizeof(p));5.关闭文件
//    ofs.close();//   1.引入头文件
//   2.创建输入流对象ifstream  ifs("Person.txt", ios::in | ios::binary);if(!ifs.is_open()){cout<<"文件打开失败"<<endl;return 0;}
//   3.创建对象Person p;
//     4.读取文件ifs.read((char *)&p,sizeof(p));
//     5.关闭文件cout<<"姓名:"<<p.name<<" 年龄:"<<p.age<<endl;ifs.close();return 0;
}

文件输入流对象 可以通过read函数,以二进制方式读数据

相关文章:

C++ 文件操作

C中对文件操作需要包含头文件 < fstream > 文件类型分为两种&#xff1a; 1 . 文本文件 - 文件以文本的**ASCII码**形式存储在计算机中 2 . 二进制文件 - 文件以文本的**二进制**形式存储在计算机中&#xff0c;用户一般不能直接读懂它们 操作文件的三大类: 1 . ofstream…...

【数据结构】-- 单链表 vs 双向链表

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;python从入门到精通&#xff0c;魔法指针&#xff0c;进阶C&#xff0c;C语言&#xff0c;C语言题集&#xff0c;C语言实现游戏&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文…...

暴雨孙辉:做好服务器,但更要辟出技术落地之道

稳扎稳打一直是暴雨的风格&#xff0c;这在被访者孙辉的身上尽显。作为暴雨&#xff08;武汉暴雨信息发展有限公司&#xff09;中国区销售及市场副总裁&#xff0c;在谈及公司的技术发展与市场推广走势之时&#xff0c;孙辉沉稳、敏锐且逻辑清晰。 因在服务器领域起步很早&…...

天地人和•大道不孤——卢禹舜中国画作品展在重庆美术馆隆重开幕

2024年4月12日&#xff0c;由中国国家画院、重庆市文化和旅游发展委员会主办&#xff0c;重庆美术馆&#xff08;重庆画院、重庆国画院&#xff09;、北京八荒锦绣美术馆、中国国际文化交流基金会卢禹舜艺术基金承办的“天地人和•大道不孤——卢禹舜中国画作品展”开幕式在重庆…...

python-pytorch使用日志0.5.007

python-pytorch使用日志 1. optimizer.zero_grad()和model.zero_grad()的区别2. cbow和skip-gram的训练数据格式3. 获取cbow和skip-gram训练后的中文词向量4. 获取到词向量后可以做什么5. 余弦相似度结果的解释 1. optimizer.zero_grad()和model.zero_grad()的区别 都是清空模…...

itop4412编译内核时garbage following instruction -- `dmb ish‘ 解决方案

王德法 没人指导的学习路上磕磕绊绊太耗费时间了 今天编译4412开发板源码时报 garbage following instruction – dmb ish’ 以下是解决方案&#xff1a; 1.更新编译器 sudo apt-get install gcc-arm-linux-gnueabi 更新后修改Makefile 中编译器路径如下图 2.你以为更新完就可…...

(学习日记)2024.04.16:UCOSIII第四十四节:内存管理

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…...

微信小程序Skyline模式下瀑布长列表优化成虚拟列表,解决内存问题

微信小程序长列表&#xff0c;渲染的越多就会导致内存吃的越多。特别是长列表的图片组件和广告组件。 为了解决内存问题&#xff0c;所以看了很多人的资料&#xff0c;都不太符合通用的解决方式&#xff0c;很多需要固定子组件高度&#xff0c;但是瀑布流是无法固定的&#xf…...

大语言模型LLM《提示词工程指南》学习笔记03

文章目录 大语言模型LLM《提示词工程指南》学习笔记03链式提示思维树检索增强生成自动推理并使用工具自动提示工程师Active-Prompt方向性刺激提示Program-Aided Language ModelsReAct框架Reflexion多模态思维链提示方法基于图的提示大语言模型LLM《提示词工程指南》学习笔记03 …...

239. 奇偶游戏(带权值并查集,邻域并查集,《算法竞赛进阶指南》)

239. 奇偶游戏 - AcWing题库 小 A 和小 B 在玩一个游戏。 首先&#xff0c;小 A 写了一个由 0 和 1 组成的序列 S&#xff0c;长度为 N。 然后&#xff0c;小 B 向小 A 提出了 M 个问题。 在每个问题中&#xff0c;小 B 指定两个数 l 和 r&#xff0c;小 A 回答 S[l∼r] 中…...

程序员做副业,AI头条,新赛道

大家好&#xff0c;我是老秦&#xff0c;6年编程&#xff0c;自由职业3年&#xff0c;今天继续更新副业内容。 在当今信息爆炸的时代&#xff0c;副业赚钱已成为许多人增加收入的重要途径。其中&#xff0c;AI头条模式以其独特的优势&#xff0c;吸引了越来越多的写作者加入。…...

Redis: 内存回收

文章目录 一、过期键删除策略1、惰性删除2、定时删除3、定期删除4、Redis的过期键删除策略 二、内存淘汰策略1、设置过期键的内存淘汰策略2、全库键的内存淘汰策略 一、过期键删除策略 1、惰性删除 顾名思义并不是在TTL到期后就立即删除&#xff0c;而是在访问一个key的时候&…...

【刷题篇】回溯算法(三)

文章目录 1、全排列2、子集3、找出所有子集的异或总和再求和4、全排列 II5、电话号码的字母组合6、括号生成 1、全排列 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 class Solution { public:vector<vector<i…...

pe格式从入门到图形化显示(八)-导入表

文章目录 前言一、什么是Windows PE格式中的导入表&#xff1f;二、解析导入表并显示1.导入表的结构2.解析导入表3.显示导入表 前言 通过分析和解析Windows PE格式&#xff0c;并使用qt进行图形化显示 一、什么是Windows PE格式中的导入表&#xff1f; 在Windows中&#xff0…...

如何将Paddle(Lite)模型转换为TensorFlow(Lite)模型

模型间的相互转换在深度学习应用中很常见&#xff0c;paddlelite和TensorFlowLite是移动端常用的推理框架&#xff0c;有时候需要将模型在两者之间做转换&#xff0c;本文将对转换方法做说明。 环境准备 建议使用TensorFlow2.14&#xff0c;PaddlePaddle 2.6 docker pull te…...

最新Zibll子比主题V7.1版本源码 全新推出开心版

源码下载地址&#xff1a;Zibll子比主题V7.1.zip...

响应式布局(其次)

响应式布局 一.响应式开发二.bootstrap前端开发框架1.原理2.优点3.版本问题4.使用&#xff08;1&#xff09;创建文件夹结构&#xff08;2&#xff09;创建html骨架结构&#xff08;3&#xff09;引入相关样式&#xff08;4&#xff09;书写内容 5.布局容器&#xff08;已经划分…...

arhtas idea plugin 使用手册

arthas idea plugin 使用文档 语雀...

数组算法——查询位置

需求 思路 使用二分查找找到第一个值&#xff0c;以第一个值作为界限&#xff0c;分为左右两个区间在左右两个区间分别使用二分查找找左边的7,&#xff1a;找到中间位置的7之后&#xff0c;将中间位置的7作为结束位置&#xff0c;依次循环查找&#xff0c;知道start>end,返回…...

【解决leecode打不开的问题】使用chrome浏览器和其他浏览器均打不开leecode

问题描述&#xff1a; 能进入leetcode力扣官网但是对某些栏目加载不出来&#xff0c;比如学习栏目能完成加载、题库栏目不能加载。 解决方法一&#xff1a;cookies缓存问题 首先尝试删除浏览器cookie缓存。 因为以下原因&#xff1a; Cookies损坏或过期&#xff1a;有些网站…...

尝试在手机上运行google 最新开源的gpt模型 gemma

Gemma介绍 Gemma简介 Gemma是谷歌于2024年2月21日发布的一系列轻量级、最先进的开放语言模型&#xff0c;使用了与创建Gemini模型相同的研究和技术。由Google DeepMind和Google其他团队共同开发。 Gemma提供两种尺寸的模型权重&#xff1a;2B和7B。每种尺寸都带有经过预训练&a…...

56、巴利亚多利德大学、马德里卡洛斯三世研究所:EEG-Inception-多时间尺度与空间卷积巧妙交叉堆叠,终达SOTA!

本次讲解一下于2020年发表在IEEE TRANSACTIONS ON NEURAL SYSTEMS AND REHABILITATION ENGINEERING上的专门处理EEG信号的EEG-Inception模型&#xff0c;该模型与EEGNet、EEG-ITNet、EEGNex、EEGFBCNet等模型均是专门处理EEG的SOTA。 我看到有很多同学刚入门&#xff0c;不太会…...

ORA-00600: internal error code, arguments: [krbcbp_9]

解决方案 1、清理过期 2、control_file_record_keep_time 修改 恢复时间窗口 RMAN (Recovery Manager) 是 Oracle 数据库的备份和恢复工具。在 RMAN 中&#xff0c;可以使用“恢复窗口”的概念来指定数据库可以恢复到的时间点。这个时间点是基于最近的完整备份或增量备份。 …...

uni-app实现分页--(2)分页加载,首页下拉触底加载更多

业务逻辑如下&#xff1a; api函数升级 定义分页参数类型 组件调用api传参...

前端工程化理解 (2024 面试题)

最好介绍远古世界最好随性一点&#xff0c;不要太刻板 &#xff0c;不然像背书 什么是前端工程化&#xff1f; - 知乎 前端工程化的历史 互联网初期&#xff0c;09 年以前&#xff0c;页面只需要展示一些列表、表格、文章内容以及简单图片即可&#xff0c;其目的是为了传送信…...

10 Php学习:循环

在 PHP 中&#xff0c;提供了下列循环语句&#xff1a; while - 只要指定的条件成立&#xff0c;则循环执行代码块do…while - 首先执行一次代码块&#xff0c;然后在指定的条件成立时重复这个循环for - 循环执行代码块指定的次数foreach - 根据数组中每个元素来循环代码块 当…...

FreeSWITCH 1.10.10 简单图形化界面17 - ubuntu22.04或者debian12 安装FreeSWITCH

FreeSWITCH 1.10.10 简单图形化界面17 - ubuntu22.04或者debian12 安装FreeSWITCH 界面预览00、先看使用手册0、安装操作系统1、下载脚本2、开始安装3、登录网页FreeSWITCH界面安装参考:https://blog.csdn.net/jia198810/article/details/132479324 界面预览 http://myfs.f3…...

ZStack Cloud 5.0.0正式发布——Vhost主存储、隔离PVLAN网络、云平台报警优化、灰度升级增强四大亮点简析

近日&#xff0c;ZStack Cloud 5.0.0正式发布&#xff0c;推出了包含Vhost主存储、隔离PVLAN网络、云平台报警优化、灰度升级增强在内的一系列重要功能。云主机管理、物理机运维、密评合规、灾备服务等诸多使用场景和功能模块均有更新&#xff0c;为您带来更完善的平台服务、更…...

商标没有去注册有哪些不好的影响!

有些商家咨询普推知产老杨&#xff0c;商标没有去注册有哪些不好的影响&#xff0c;其实对企业来说还有许多实际不利的影响&#xff0c;有时代价比注册一个商标要大很多。 想的商标名称没去注册商标&#xff0c;如果别人抢注拿下商标注册证&#xff0c;那就会涉及侵权&#xf…...

【小程序】常用方法、知识点汇总1

欢迎来到《小5讲堂》 这是《小程序》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 前言请求超时Markdown解析逐行显示效果文本变动事件转发…...

wordpress动态导航侧边栏/seo费用

题目背景 话说我大一中的运动会就要来了&#xff0c;据本班同学剧透&#xff08;其实早就知道了&#xff09;&#xff0c;我萌萌的初二年将要表演腰鼓[喷]&#xff0c;这个无厘头的题目便由此而来。 Ivan乱入&#xff1a;“忽一人大呼&#xff1a;‘好一个安塞腰鼓&#xff01;…...

沈阳公司做网站的/百度信息流怎么收费

说明 最近看到许多博主的页面特别漂亮&#xff0c;都有目录导航&#xff0c;方便大家阅读浏览。于是一搜索&#xff0c;发现已经有很多相应的教程《JS自动生成博文目录》。 但是没有一个针对BOOk皮肤的&#xff0c;比较喜欢这个皮肤&#xff0c;那就自己动手实现一个咯。 具体代…...

酒泉手机网站建设/推广网站源码

用Java实现算法和数据结构本项目主要用于自己在工作之余记录用Java实现的算法和数据结构的源码&#xff1b;同时还会记录自己刷leetcode的题解思路等&#xff1b;经典排序算法排序算法总结排序名平均时间复杂度空间复杂度优势劣势适用场景稳定性冒泡排序O(n^2)O(1)稳定插入排序…...

在唐山做网站多少钱/郑州网站优化公司

1、查看 /opt 整个目录大小 [rootlocalhost xml_onvif]# df -h /opt Filesystem Size Used Avail Use% Mounted on /dev/sda2 18G 12G 5.3G 69% / 2、查看 /opt 目录下的文件大小 [rootlocalhost xml_onvif]# ls -lh /opt/ total 442M drwxr-xr…...

个人博客网站教程/什么时候网络推广

飞跃原野一秒钟杀死互联网。 这就是全部。 昨天的second秒使原子钟与地球自转对齐&#xff0c;导致广泛的在线混乱&#xff0c;因为准备不足的网站和软件花费了额外的秒。 在格林尼治标准时间午夜cho睡的人中&#xff0c;Reddit&#xff0c;Gawker&#xff0c; StumbleUpon&am…...

flash工作室网站模板/seo优化专员

1. 类和对象 1.1 类和对象的理解【理解】 客观存在的事物皆为对象 &#xff0c;所以我们也常常说万物皆对象。 类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的抽象类是对象的数据类型&#xff0c;类是具有相同属性和行为的一组对象的集合简单理解&#xff1a;…...