文本文件操作

news2024/11/24 16:25:41

大家好:

        衷心希望各位点赞。

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

文件操作

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

        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.coloradmin.cn/o/1557903.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

语音识别:基于HMM

HMM语音识别的解码过程 从麦克风采集的输入音频波形被转换为固定尺寸的一组声学向量&#xff1a; 其中是维的语音特征向量&#xff08;例如MFCC&#xff09;。 解码器尝试去找到上述特征向量序列对应的单词&#xff08;word&#xff09;的序列&#xff1a; 单词序列的长度是。…

是德科技keysight N9000B 信号分析仪

181/2461/8938产品概述&#xff1a; 工程的内涵就是将各种创意有机地联系起来&#xff0c;并解决遇到的问题。 CXA 信号分析仪具有出色的实际性能&#xff0c;它是一款出类拔萃、经济高效的基本信号表征工具。 它的功能十分强大&#xff0c;为一般用途和教育行业的用户执行测试…

罗永浩直播阿里云服务器是哪款?ECS经济型e实例性能如何?

罗永浩直播卖阿里云&#xff0c;带货爆款云服务器ECS经济型e实例是什么&#xff1f;阿里云服务器ECS经济型e实例的使命是什么&#xff1f;一般来讲&#xff0c;学生、开发者和小微企业主要使用云服务器主要开展网站建设、开发测试和业务灾备、搭建小程序后端服务、Web应用、云上…

量化交易入门(三十三)BIAS指标实现和回测

接下来我们还是用苹果股票2020年1月1日到2023年12月30日的历史数据进行回测&#xff0c;看看这个指标的效果如何&#xff0c;具体回测结果如下&#xff1a; 策略运行结果及解读 执行的结果&#xff1a; Starting Portfolio Value: 100000.00 Final Portfolio Value: 186723.0…

git基本操作二(小白快速上手)

1、前言 接上篇我们接着来继续讲 2、.gitignore忽略文件 创建一个.gitignore文件&#xff0c;并将其置于项目的根目录下&#xff0c;Git将自动识别并根据该规则忽略相应的文件和目录。 # 忽略所有的 .log 文件 *.log# 但跟踪所有的 build.log 文件 !build.log# 忽略所有的 /lo…

Visual Studio 2022 中 Qt 开发环境的搭建

Visual Studio 2022 中 Qt 开发环境的搭建 Visual Studio 2022 中 Qt 开发环境的搭建 Visual Studio 2022 中 Qt 开发环境的搭建 点击扩展&#xff0c;并选择管理扩展。 搜索qt&#xff0c;下载并安装 Qt Visual Studio Tools。 安装完成后&#xff0c;点击扩展&#xff0c;会…

pytorch常用的模块函数汇总(1)

目录 torch&#xff1a;核心库&#xff0c;包含张量操作、数学函数等基本功能 torch.nn&#xff1a;神经网络模块&#xff0c;包括各种层、损失函数和优化器等 torch.optim&#xff1a;优化算法模块&#xff0c;提供了各种优化器&#xff0c;如随机梯度下降 (SGD)、Adam、RMS…

基于SpringBoot的“校园台球厅人员与设备管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“校园台球厅人员与设备管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 系统首页界面图…

信息工程大学第五届超越杯程序设计竞赛(同步赛)题解

比赛传送门 博客园传送门 c 模板框架 #pragma GCC optimize(3,"Ofast","inline") #include<bits/stdc.h> #define rep(i,a,b) for (int ia;i<b;i) #define per(i,a,b) for (int ia;i>b;--i) #define se second #define fi first #define e…

YOLOv8算法改进【NO.111】利用shift-wise conv对顶会提出EMO中的iRMB进行二次创新

前 言 YOLO算法改进系列出到这&#xff0c;很多朋友问改进如何选择是最佳的&#xff0c;下面我就根据个人多年的写作发文章以及指导发文章的经验来看&#xff0c;按照优先顺序进行排序讲解YOLO算法改进方法的顺序选择。具体有需求的同学可以私信我沟通&#xff1a; 首推…

Vue + .NetCore前后端分离,不一样的快速发开框架

摘要&#xff1a; 随着前端技术的快速发展&#xff0c;Vue.NetCore框架已成为前后端分离开发中的热门选择。本文将深入探讨Vue.NetCore前后端分离的快速开发框架&#xff0c;以及它如何助力开发人员提高效率、降低开发复杂度。文章将从基础功能、核心优势、适用范围、依赖环境等…

Qt for WebAssembly 环境搭建 - Windows新手入门

Qt for WebAssembly 环境搭建 - Windows新手入门 一、所需工具软件1、安装Python2、安装Git2.1 注册Github账号2.2 下载安装Git2.2.1配置Git&#xff1a;2.2.2 配置Git环境2.2.3解决gitgithub.com: Permission denied (publickey) 3 安装em编译器 二、Qt配置编译器三、参考链接…

wireshark 使用

wireshark介绍 wireshak可以抓取经过主机网卡的所有数据包&#xff08;包括虚拟机使用的虚拟网卡的数据包&#xff09;。 环境安装 安装wireshark: https://blog.csdn.net/Eoning/article/details/132141665 安装网络助手工具&#xff1a;https://soft.3dmgame.com/down/213…

【Java SE】深入理解static关键字

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 文章目录 1.static关键字1.1 static的概念1.2 static的作用1.3 static的用法1.3.1 static修饰成员变量1.3.2 static修饰…

记一次由gzip引起的nginx转发事故

故事背景 书接前几篇文章&#xff0c;仍然是交付甲方遇到的一个特殊诉求&#xff0c;从而引发了本期的事故。甲方的诉求是前端的请求过来&#xff0c;需要加密&#xff0c;但是要经过waf&#xff0c;必须要求是请求明文&#xff0c;那就要在waf和nginx之间做一个解密前置应用处…

【3】3道链表力扣题:删除链表中的节点、反转链表、判断一个链表是否有环

3道链表力扣题 一、删除链表中的节点&#x1f30f; 题目链接&#x1f4d5; 示例&#x1f340; 分析&#x1f4bb; 代码 二、反转链表&#x1f30f; 题目链接&#x1f4d5; 示例&#x1f340; 分析① 递归② 迭代 三、判断一个链表是否有环&#x1f30f; 题目链接&#x1f4d5; …

学习transformer模型-Input Embedding 嵌入层的简明介绍

今天介绍transformer模型的Input Embedding 嵌入层。 背景 嵌入层的目标是使模型能够更多地了解单词、标记或其他输入之间的关系。 从头开始嵌入Embeddings from Scratch 嵌入序列需要分词器tokenizer、词汇表和索引&#xff0c;以及词汇表中每个单词的三维嵌入。Embedding a s…

git clone 后如何 checkout 到 remote branch

what/why 通常情况使用git clone github_repository_address下载下来的仓库使用git branch查看当前所有分支时只能看到master分支&#xff0c;但是想要切换到其他分支进行工作怎么办❓ 其实使用git clone下载的repository没那么简单&#x1f625;&#xff0c;clone得到的是仓库…

一个 hipsolver 特征值示例

1&#xff0c;原理 通过雅可比旋转&#xff0c;对对称矩阵计算特征值和特征向量&#xff1b; 通过初等正交变换&#xff0c;每次把其中一个非主对角元素消成零&#xff0c;最终只剩主对角线非零元素为特征值&#xff0c;同时把初等变换累积下来&#xff0c;构成特征向量。 2&a…

使用1panel部署Ollama WebUI(dcoekr版)浅谈

文章目录 说明配置镜像加速Ollama WebUI容器部署Ollama WebUI使用问题解决&#xff1a;访问页面空白 说明 1Panel简化了docker的部署&#xff0c;提供了可视化的操作&#xff0c;但是我在尝试创建Ollama WebUI容器时&#xff0c;遇到了从github拉取镜像网速很慢的问题&#xf…