文本文件操作

大家好:

        衷心希望各位点赞。

        您的问题请留在评论区,我会及时回答。

文件操作

        程序运行时,产生的数据都是临时数据,程序一旦运行结束都会被释放。通过文件可以将数据持久化。

        C++中对文件进行操作需要包含头文件<fstream>

        文件类型分为两种:

        1.文本文件:文件以文本的ASC||码形式存储在计算机中。

        2.二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们。

        操作文件的三大类:

        1.写操作:ofstream

        2.读操作:ifstream

        3.读写操作:fstream

文本文件

写文件

写文件步骤如下:

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

#include <iostream>
#include <Windows.h>
#include <string>
#include <fstream> // 头文件包含using namespace std;int main(void)
{// 创建流对象ofstream ofs;// 指定打开方式ofs.open("test.txt", ios::out);// 写入内容ofs << "姓名:张三" << endl;ofs << "性别:男" << endl;ofs << "年龄:18" << endl;// 关闭文件ofs.close();system("pause");return 0;
}

运行截图:

 

总结

文件操作必须包含头文件 fstream

写文件可以利用ofstream,或者fstream

打开文件的时候,需要制定操作文件的路径,以及打开方式

利用<<可以向文件中写数据

操作完毕,需要关闭文件

读文件

读文件与写文件步骤相似,但是读取方式相对比较多。

读文件步骤如下:

1.包含头文件

#include<fstream>

2.创建流对象

ifstream ifs;

3.打开文件,判断是否打开成功ifs.is_open

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

4.读数据

4种方式读取

5.关闭文件

ifs.close();

#include <iostream>
#include <Windows.h>
#include <string>#include <fstream> // 头文件包含using namespace std;int main(void)
{// 创建流对象ifstream ifs;// 打开文件,并且判断是否打开成功ifs.open("test.txt", ios::in);if ( !ifs.is_open() ){cout << "文件打开失败" << endl;return 0;}// 读数据// 1、把文件中的数据全部放入buf数据中char buf[1024] = { 0 };while (ifs >> buf){cout << buf << endl;}// 2法char buf[1024] = { 0 };while (ifs.getline(buf, sizeof(buf))){cout << buf << endl;}// 3法string buf;while (getline(ifs, buf)){cout << buf << endl;}// 4法char c;while ((c = ifs.get()) != EOF) // EOF :end of file 文件结束标志{cout << c;}// 关闭文件ifs.close();system("pause");return 0;
}

总结

读文件可以利用ifstream,或者fstream

利用is_open函数可以判断文件是否打开成功

close关闭文件

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

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

相关文章

【scala】使用gradle和scala构建springboot程序

零、版本说明: springboot: 2.7.18 使用log4j2&#xff0c;不使用springboot自带的logback scala版本&#xff1a;2.11 jackson版本&#xff1a;2.16.0 一、依赖&#xff1a; buildscript {dependencies {// using spring-boot-maven-plugin as package toolclasspath("…

halcon例程学习——ball.hdev

dev_update_window (off) dev_close_window () dev_open_window (0, 0, 728, 512, black, WindowID) read_image (Bond, die/die_03) dev_display (Bond) set_display_font (WindowID, 14, mono, true, false) *自带的 提示继续 disp_continue_message (WindowID, black, true)…

【深耕 Python】Data Science with Python 数据科学(2)jupyter-lab和numpy数组

关于数据科学环境的建立&#xff0c;可以参考我的博客&#xff1a;【深耕 Python】Data Science with Python 数据科学&#xff08;1&#xff09;环境搭建 Jupyter代码片段1&#xff1a;简单数组的定义和排序 import numpy as np np.array([1, 2, 3]) a np.array([9, 6, 2, …

剑指Offer题目笔记22(快速排序)

快速排序定义&#xff1a; ​ 快速排序的基本思想是分治法&#xff0c;排序过程如下&#xff1a;在输入数组中随机选取一个元素作为中间值&#xff08;pivot&#xff09;&#xff0c;然后对数组进行分区&#xff08;partition&#xff09;&#xff0c;使所有比中间值小的数据移…

elasticsearch 8.12+kibana 8.12

准备工作&#xff1a;1.下载相关的安装包放到/usr/local/ES下面 elasticsearch下载地址:Download Elasticsearch | Elastic elasticsearch-head-master下载地址:https://github.com/mobz/elasticsearch-head/archive/master.zip node下载地址:Index of /dist/ kibana地址:Downl…

C++中的STL简介与string类

目录 STL简介 STL的版本 STL的六大组件 string类 标准库中的string类 string类的常用接口 string类对象对容量的操作 size()函数与length()函数 capacity()函数 capacity的扩容方式 reserve()函数 resize()函数 string类对象的操作 push_back()函数 append()函数 operator()函数…

【JavaScript算法】DOM树层级显示

题目描述&#xff1a; 上述表达式的输出结果为 [DIV] [P, SPAN, P, SPAN] [SPAN, SPAN]直接上代码 let tree document.querySelector(".a"); function traverseElRoot(elRoot) {const result [];function traverse(element, level) {if (!result[level]) {resul…

智能未来:一站式AI技术探索平台(一键收藏)

KKAI&#xff0c;&#xff08;kk.zlrxjh.top&#xff09; 一个融合了星火大模型和文心大模型技术的先进知识增强型大语言模型&#xff0c;致力于自然语言处理&#xff08;NLP&#xff09;技术的深入研究与开发。此模型展现了卓越的语义理解与内容生成技能&#xff0c;轻松应对…

[Python GUI PyQt] PyQt5快速入门

PyQt5快速入门 PyQt5的快速入门0. 写在前面1. 思维导图2. 第一个PyQt5的应用程序3. PyQt5的常用基本控件和布局3.1 PyQt5的常用基本控件3.1.1 按钮控件 QPushButton3.1.2 文本标签控件 QLabel3.1.3 单行输入框控件 QLineEdit3.1.4 A Quick Widgets Demo 3.2 PyQt5的常用基本控件…

静态住宅IP优缺点,究竟要怎么选?

在进行海外 IP 代理时&#xff0c;了解动态住宅 IP 和静态住宅 IP 的区别以及如何选择合适的类型非常重要。本文将介绍精态住宅 IP 特点和&#xff0c;并提供选择建议&#xff0c;帮助您根据需求做出明智的决策。 静态住宅 IP 的特点 静态住宅 IP 是指 IP 地址在一段时间内保…

2024最新嵌入式学习路线,太顶了

2024最新嵌入式学习路线&#xff0c;太顶了&#xff01;&#xff01;&#xff01; 嵌入式系统是一种将软件和硬件紧密结合的技术。在我们投身嵌入式行业时&#xff0c;首先需要认识到&#xff0c;无论我们是专注于软件开发还是硬件开发&#xff0c;最终的目标都是为了更好的工作…

JSON 文档存储详解

JSON&#xff08;JavaScript Object Notation、JavaScript 对象表示法&#xff09;是一种轻量级的数据交换格式&#xff0c;采用完全独立于编程语言的文本格式来存储和表示数据。JSON 易于阅读和编写&#xff0c;同时也方便机器解析和生成&#xff0c;并且能够有效地提升网络传…