c++学习第十一讲---文件操作

这篇具有很好参考价值的文章主要介绍了c++学习第十一讲---文件操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文件操作:

c++中对文件操作需要包含头文件 < fstream >

文本文件:以ASCII码形式储存
二进制文件:以二进制文件储存(读不懂)

操作文件三大类:

读:ifstream ; 写:ofstream ; 读写:fstream

一.文本文件:

1.写文件:

步骤:

(1)包含头文件:#include <fstream>

(2)创建流对象:ofstream ofs;

(3)打开文件:ofs.open(“文件路径”,打开方式);

(4)写数据:ofs <<  “数据”;

(5)关闭文件:ofs.close();

文件打开方式:

c++学习第十一讲---文件操作,学习,c++

注:1.可用 | 操作符运用多种打开方式。

2.可在创建流对象的时候直接打开文件并指定打开方式:

ofstream ofs("test.txt", ios::out | ios::binary);

例:

void test01()
{
	ofstream ofs;
	ofs.open("test.txt", ios::out);//不写路径,默认创建在与代码项目同文件夹
	ofs << "hello world" << endl;
	ofs << "hello world" << endl;
	ofs.close();
}

2.读文件:

步骤:

(1)包含头文件:#include <fstream>

(2)创建流对象:ifstream ifs;

(3)打开文件,并判断是否打开成功:

ifs.open(“文件路径”,打开方式);
ifs下有一 is_open 函数,返回bool类型值。

	if (!ifs.is_open())//这里取反
	{
		cout << "文件打开失败" << endl;
		return;
	}

(4)读数据:四种方式。

(5)关闭文件:ifs.close();

读文件的四种方式:

a.第一种:char[ ] + ifs >> 

	char buf[1024] = { 0 };
	while (ifs >> buf)//按空格和回车循环
	{
		cout << buf << endl;
	}

b.第二种:char[ ] + ifs.getline()

	char buf[1024] = { 0 };
	while (ifs.getline(buf, sizeof(buf)))//按行循环
	{
		cout << buf << endl;
	}

c.第三种:string + getline()

	string buf;
	while (getline(ifs, buf))
	{
		cout << buf << endl;
	}

d.第四种:char + ifs.get()  (不推荐)

	char c;
	while ((c = ifs.get()) != EOF)
	{
		cout << c;
	}

二.二进制文件:

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

1.写文件:

调用流对象的成员函数 write(const char*,写入最大字符数)

例:

class Person
{
public:
	char m_Name[64];
	int m_Age;
};
void test03()
{
	ofstream ofs("test.txt", ios::out | ios::binary);
	Person p = { "张三",18 };
	ofs.write((const char*)(&p), sizeof(Person));
	ofs.close();
}

2.读文件:

调用流对象的成员函数 read(char*,读出最大字符数)文章来源地址https://www.toymoban.com/news/detail-820007.html

class Person
{
public:
	char m_Name[64];
	int m_Age;
};
void test04()
{
	Person p;
	ifstream ifs;
	ifs.open("test.txt", ios::in | ios::binary);
	if (!ifs.is_open())
	{
		cout << "文件打开失败" << endl;
		return;
	}
	ifs.read((char*) & p, sizeof(Person));
	cout << p.m_Name << " " << p.m_Age << endl;
}

到了这里,关于c++学习第十一讲---文件操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ElasticSearch第十一讲 ES检索评分score以及分数计算逻辑

    relevance score算法,简单来说,就是计算出,一个索引中的文本,与搜索文本,他们之间的关联匹配程度。Elasticsearch使用的是 term frequency/inverse document frequency算法,简称为TF/IDF算法 Term frequency:搜索文本中的各个词条在field文本中出现了多少次,出现次数越多,就越相关

    2023年04月23日
    浏览(40)
  • 第十一讲 单片机驱动彩色液晶屏 控制RA8889软件:播放avi视频

    目录 第一讲 单片机最小系统STM32F103C6T6通过RA8889驱动彩色液晶屏播放视频 第二讲 单片机最小系统STM32F103C6T6控制RA8889驱动彩色液晶屏硬件框架 第三讲 单片机驱动彩色液晶屏 控制RA8889软件:如何初始化 第四讲 单片机驱动彩色液晶屏 控制RA8889软件:绘图 第五讲 单片机驱动彩色液

    2024年01月22日
    浏览(37)
  • C语言从入门到精通 第十一章(文件操作)

      写在前面: 本系列专栏主要介绍C语言的相关知识,思路以下面的参考链接教程为主,大部分笔记也出自该教程。 除了参考下面的链接教程以外,笔者还参考了其它的一些C语言教材,笔者认为重要的部分大多都会用粗体标注(未被标注出的部分可能全是重点,可根据相关

    2024年03月09日
    浏览(54)
  • 盖子的c++小课堂——第二十一讲:map

    时隔一周,我又来更新了^_^,今天都第二十一讲了,前三个板块马上就结束了,也就是小课堂(1)马上结束了, 敬请期待“盖子的c++小课堂(2)” ,嘿嘿~~ 数据容器——一对一映射 每个人都有对应一个身高 每个string对应一个double 每个阿拉伯数字都有对应一个拼写 每个i

    2024年02月15日
    浏览(36)
  • 【C++】C++核心编程(十一)文件操作

      程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放,通过文件可以将数据持久化。    C++中对文件进行操作需要包含头文件 fstream   文件类型分为两种:     1、文本文件—文件以文本的ASCII码形式存储在计算机中;     2、二进制文件—

    2024年02月09日
    浏览(40)
  • 【Java基础教程】(三十一)常用类库篇 · 第一讲:Optional类——解锁Java的Optional操作,消灭那些隐匿的空指针,还程序世界一个安稳!~

    Optional 类是Java 8引入的新特性,旨在解决空值( null )的处理问题 。它的设计目的是为了提供一种更好的方式来处理可能为空的值,避免使用 null 导致空指针异常。 Optional 是一个容器对象,可以持有某个类型的非空值或者空值。它是一个包装类,用于替代可能为空的引用变

    2024年02月15日
    浏览(45)
  • C++第十一弹---类与对象(八)

       ✨ 个人主页:  熬夜学编程的小林 💗 系列专栏:   【C语言详解】   【数据结构详解】 【C++详解】 目录 1、友元 1.1、友元函数 1.2、友元类 2、内部类 3、匿名对象 4、拷贝对象时的一些编译器优化 总结 友元提供了一种突破封装的方式,有时提供了便利。 但是友元会增

    2024年03月26日
    浏览(44)
  • C语言第十一课--------操作符的使用与分类-------基本操作

             作者介绍:           作者id : 老秦包你会 , 简单介绍:              喜欢学习C语言和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨                                 个人主页::小小页面                                   gitee页面

    2024年02月14日
    浏览(47)
  • 西瓜书读书笔记整理(十一) —— 第十一章 特征选择与稀疏学习

    11.1.1 基本概念 特征(feature) :在机器学习中, 特征 是指从数据中提取的用于描述样本的属性或信息。 相关特征(relevant feature) :对当前学习任务 有用 的属性称为 “ 相关特征 ”。 无关特征(inrelevant feature) :对当前学习任务 无用 的属性称为 “ 无关特征 ”。 冗余特

    2024年01月19日
    浏览(57)
  • ROS学习第十一节——常用命令

    机器人系统中启动的节点少则几个,多则十几个、几十个,不同的节点名称各异,通信时使用话题、服务、消息、参数等等都各不相同,一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节点通信时,如何获取对方的话题、以及消息载体的格式呢? 在 ROS 同提

    2024年02月06日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包