C++的文件操作详解

目录

1.文本文件

1.写文件  

2.读文件 

 2.二进制文件

1.写文件

2.读文件


1.文本文件

 

1.写文件  

 

#include<bits/stdc++.h>
#include<fstream>
using namespace std;int main()
{ofstream ofs;ofs.open("text.txt",ios::out);ofs << "abc" << endl;ofs << 123 << endl;ofs.close();return 0;
}

打开文件所在的文件夹即可发现一个新文件 

 

2.读文件 

#include<bits/stdc++.h>
#include<fstream>
using namespace std;int main()
{ifstream ifs;ifs.open("test.txt",ios::in);//如果成功打开了返回真,否则返回假ifs.is_open();if(!ifs.is_open()){cout << "文件打开失败" << endl;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;//getline里第一个空是输入流对象,也就是ifs//第二个是准备好的字符串,这里为buf// while(getline(ifs,buf))// {// cout << buf << endl;// }//第四种,效率低,不太推荐char c;//没有读到尾就一直读,EOF代表文件尾end of filewhile((c = ifs.get()) != EOF){cout << c;}ifs.close();return 0;
}

 

 

 2.二进制文件

1.写文件

#include<bits/stdc++.h>
#include<fstream>
using namespace std;class person
{
public://写入文件时最好用字符数组而不是c++里的字符串char name[10];int id;
};
int main()
{ofstream ofs("person.txt",ios::out | ios::binary);//先创建ofs再这样写也行//ofs.open("person.txt",ios::out | ios::binary);person p = {"xiaoming",1};ofs.write((const char *)&p,sizeof(person));ofs.close();return 0;
}

打开文件所在文件夹 

 

以二进制的方式写入,所以会有乱码存在 

 

 

2.读文件

 

#include<bits/stdc++.h>
#include<fstream>
using namespace std;class person
{
public://写入文件时最好用字符数组而不是c++里的字符串char name[10];int id;
};int main()
{ifstream ifs;ifs.open("person.txt",ios::in | ios::binary);if(!ifs.is_open()){cout << "打开失败" << endl;}person p;ifs.read((char *)&p, sizeof(person));cout << p.name << ' ' << p.id << endl;ifs.close();return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/487967.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

H桥逆变控制方式(单极性倍频)

单极性倍频图像 内部做了载波取反&#xff1a;正相载波和负相载波 最后都和调制载波一起比较 正相载波&#xff1a;Q7导通为高电平&#xff0c;Q15导通为低电平 负相载波&#xff1a;Q16导通为高电平&#xff0c;Q8导通为低电平 导通次序为&#xff1a;Q7Q16——Q7Q8——Q7Q…

第3.3章:StarRocks数据导入——Stream Load

一、概述 Stream Load是StarRocks最为核心的导入方式&#xff0c;用户通过发送HTTP请求将本地文件或数据流导入至StarRocks中&#xff0c;其本身不依赖其他组件。 Stream Load支持csv和json两种数据文件格式&#xff0c;适用于数据文件数量较少且单个文件的大小不超过10GB 的场…

【微服务】国内微服务生态标准-SpringCloud Alibaba

现在已经是21世纪的二十年代&#xff0c;在未来的很长时间&#xff0c;以互联网、IOT物联网为代表的分布式应用必将越来越多&#xff0c;大量的软件企业对掌握微服务与高可用、高性能、高并发的架构人才也必定趋之若鹜。我们可以看看现阶段针对软件架构师的招聘需求和薪资&…

LoRA Land:性能优于 GPT-4 的微调开源 LLMs

我们很高兴发布 LoRA Land&#xff0c;这是 25 个经过微调的 Mistral-7b 模型的集合&#xff0c;根据任务的不同&#xff0c;它们的性能始终比基本模型高出 70%&#xff0c;GPT-4 高出 4-15%。LoRA Land 的 25 个任务专用大型语言模型 &#xff08;LLMs&#xff09; 都使用 Pre…

Java的编程之旅27——继承

1.继承的简介 继承是面向对象编程中的一个重要概念&#xff0c;指的是一个类可以继承另一个类的属性和方法。被继承的类称为父类或基类&#xff0c;继承这个父类的类称为子类或派生类。 通过继承&#xff0c;子类可以继承父类的属性和方法&#xff0c;使得子类具有相似的行为…

【线程池项目(二)】线程池FIXED模式的实现

在上一篇【线程池项目&#xff08;一&#xff09;】项目介绍和代码展示 中&#xff0c;我们展示了线程池的两个版本实现&#xff0c;它们的代码在具体的实现细节上是优化过了的。下文提供的代码并非完整&#xff0c;也有很多地方尚需改善&#xff0c;但这些差异对理解整个项目而…

靡语IT:JavaScript数组

目录 1.数组&#xff1a;Array 2.Array.length 3.数组的声明(创建)方法 4.数组去重 5.数组遍历 6.类数组对象 1.数组&#xff1a;Array 数组对象的作用是&#xff1a;使用单独的变量名来存储一系列的值。 参数 参数 size 是期望的数组元素个数。返回的数组&#xff0…

操作系统(1)——学习导论(Ⅰ)

目录 小程一言专栏链接: [link](http://t.csdnimg.cn/6grrU) 学习导论什么是操作系统主要功能强调 操作系统历史硬件层面处理器重要特点and功能 存储器磁盘I/O设备小程常用的I/O设备及其特点 小程一言 本操作系统专栏&#xff0c;是小程在学操作系统的过程中的第一步&#xff…

200万上下文窗口创飞Gemini 1.5!微软来砸谷歌场子了

谷歌刚刷新大模型上下文窗口长度记录&#xff0c;发布支持100万token的Gemini 1.5&#xff0c;微软就来砸场子了。 推出大模型上下文窗口拉长新方法——LongRoPE&#xff0c;一口气将上下文拉至2048k token&#xff0c;也就是200多万&#xff01; 并且1000步微调内&#xff0c…

【刷题记录】链表的回文结构

本系列博客为个人刷题思路分享&#xff0c;有需要借鉴即可。 1.题目链接&#xff1a; LINK 2.详解思路&#xff1a; 思路&#xff1a;思路&#xff1a;先找到中间节点&#xff0c;然后逆置后半部分链表&#xff0c;一个指针指向链表的头节点&#xff0c;再一个指针指向逆置的头…

ELK介绍以及搭建

基础环境 hostnamectl set-hostname els01 hostnamectl set-hostname els02 hostnamectl set-hostname els03 hostnamectl set-hostname kbased -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config systemctl stop firewalld & systemctl disable firewalld# 安…

c语言的数据结构:找环状链表入口处

一起<(&#xffe3;︶&#xffe3;)↗[GO!] 1.如何判断一个链表是否有环 思路:设定两个快慢指针fast和slow,fast每次走两个结点,slow每次走一个节点 如果fast指针遇到了Null,那么这个链表没有环,如果fast和slow可以相遇,则代表这个链表有环 代码如下 N:fast先进环,slow后…