C++文件操作-文本文件-读文件
第一种
#include<iostream>//1、包含头文件 fstream
#include<fstream>
using namespace std;void test01()
{//2、创建流对象ifstream ifs;//3、打开文件 并且判断是否打开成功ifs.open("test.txt", ios::in);if (!ifs.is_open()){cout << "文件打开失败" << endl;return;}//4、读数据//第一种char buf[1024] = { 0 };while (ifs >> buf){cout << buf << endl;}//5、关闭文件ifs.close();}
int main() {test01();system("pause");return 0;
}
char buf[1024] = { 0 };while (ifs >> buf){cout << buf << endl;}
char buf[1024] = { 0 };
声明了一个字符数组buf
,用于存储从文件中读取的数据,数组大小为 1024 字节。while (ifs >> buf)
这一行是一个循环,每次从文件流ifs
中读取下一个单词,并将其存储到buf
中。读取操作会自动以空格作为分隔符,每次读取一个单词或一段字符,直到遇到文件结尾。
第二种
#include<iostream>//1、包含头文件 fstream
#include<fstream>
using namespace std;void test01()
{//2、创建流对象ifstream ifs;//3、打开文件 并且判断是否打开成功ifs.open("test.txt", ios::in);if (!ifs.is_open()){cout << "文件打开失败" << endl;return;}//4、读数据//第二种char buf[1024] = { 0 };while (ifs.getline(buf, sizeof(buf))){cout << buf << endl;}//5、关闭文件ifs.close();}
int main() {test01();system("pause");return 0;
}
- while (ifs.getline(buf, sizeof(buf))) 是一个循环,每次从文件流 ifs 中读取一行数据,存储到 buf 中。
- getline() 函数会读取文件直到换行符或文件结束符 \n,并将读取的内容存储到 buf 中,同时将 \n 替换为 ‘\0’(字符串结束符)。
第三种
#include<iostream>
#include<string>
//1、包含头文件 fstream
#include<fstream>
using namespace std;void test01()
{//2、创建流对象ifstream ifs;//3、打开文件 并且判断是否打开成功ifs.open("test.txt", ios::in);if (!ifs.is_open()){cout << "文件打开失败" << endl;return;}//4、读数据//第三种string buf;while (getline(ifs,buf)){cout << buf << endl;}//5、关闭文件ifs.close();}
int main() {test01();system("pause");return 0;
}
string buf;
while (getline(ifs, buf))
{cout << buf << endl;
}
string buf;
声明了一个std::string
类型的变量buf
,用于存储从文件中读取的每一行数据。while (getline(ifs, buf))
是一个循环,每次从文件流ifs
中读取一行数据,存储到buf
中。getline()
函数会读取文件直到换行符或文件结束符\n
,并将读取的内容存储 到buf
中。
优点
- 使用
std::string
类型代替字符数组char buf[1024]
,使得代码更加现代化和易读。 getline()
函数会自动处理换行符和文件结束符,不需要手动添加字符串结束符'\0'
。getline()
可以处理不同长度的行,不像使用字符数组时需要预先确定缓冲区大小。
第四种
#include<iostream>
#include<string>
//1、包含头文件 fstream
#include<fstream>
using namespace std;void test01()
{//2、创建流对象ifstream ifs;//3、打开文件 并且判断是否打开成功ifs.open("test.txt", ios::in);if (!ifs.is_open()){cout << "文件打开失败" << endl;return;}//4、读数据//第四种char c;while ((c = ifs.get()) != EOF){cout << c;}//5、关闭文件ifs.close();}
int main() {test01();system("pause");return 0;
}
char c;
while ((c = ifs.get()) != EOF)
{cout << c;
}
char c;
声明了一个字符变量c
,用于存储从文件中逐字符读取的数据。while ((c = ifs.get()) != EOF)
是一个循环,每次使用ifs.get()
方法从文件流ifs
中读取一个字符,并将其赋值给c
。循环会继续执行直到ifs.get()
返回的字符为文件结束符EOF
。
- EOF(End Of File)处理:
EOF
是一个宏,表示文件结束符。在读取文件时,ifs.get()
会返回EOF
表示已经到达文件末尾,循环因此终止。
注意事项:
- 这种方法逐字符读取文件内容,适合处理特定格式的文件或者需要精确控制每个字符的处理。
- 需要确保文件在使用
ifs.open()
打开后成功,否则可能会导致未定义的行为或错误。 - 在使用
ifs.get()
时,要注意处理特殊字符(如换行符\n
)或者特定的文件编码格式(如 UTF-8)可能需要额外的处理逻辑。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
C++文件操作-文本文件-读文件
第一种 #include<iostream>//1、包含头文件 fstream #include<fstream> using namespace std;void test01() {//2、创建流对象ifstream ifs;//3、打开文件 并且判断是否打开成功ifs.open("test.txt", ios::in);if (!ifs.is_open()){cout << "…...
![](https://img-blog.csdnimg.cn/direct/7f06907c3c4b4c2a8800bace1e511bb8.gif#pic_center)
二叉树精选面试题
💎 欢迎大家互三:2的n次方_ 1. 相同的树 100. 相同的树 同时遍历两棵树 判断结构相同:也就是在遍历的过程中,如果有一个节点为null,另一棵树的节点不为null,那么结构就不相同 判断值相同:只需…...
![](https://img-blog.csdnimg.cn/img_convert/2a735ca5e0a04a3aca1a725fac41056d.jpeg)
如何在 Android 中删除和恢复照片
对于智能手机用户来说,相机几乎已经成为一种条件反射:你看到值得注意的东西,就拍下来,然后永远保留这段记忆。但如果那张照片不值得永远保留怎么办?众所周知,纸质快照拿在手里很难舍弃,而 Andro…...
![](https://www.ngui.cc/images/no-images.jpg)
HarmonyOS Next原生应用开发-从TS到ArkTS的适配规则(六)
一、仅支持一个静态块 规则:arkts-no-multiple-static-blocks 级别:错误 ArkTS不允许类中有多个静态块,如果存在多个静态块语句,请合并到一个静态块中。 TypeScript class C {static s: stringstatic {C.s aa}static {C.s C.s …...
![](https://i-blog.csdnimg.cn/direct/1af6cb722b61430abea7e6f85272a788.png)
功能测试与APPSCAN自动化测试结合的提高效率测试策略
背景 手工探索性测试(Manual Exploratory Testing,简称MET)是一种软件测试方法,它依赖于测试人员的直觉、经验和即兴发挥来探索应用程序或系统。与传统的脚本化测试相比,手工探索性测试不遵循固定的测试脚本࿰…...
![](https://i-blog.csdnimg.cn/direct/626c34a7106f4bbb99c434373a1ab2e6.png)
AVL树的理解和实现[C++]
文章目录 AVL树AVL树的规则或原理 AVL树的实现1.节点的定义2.功能和接口等的实现默认构造函数,析构函数拷贝构造函数插入搜索打印函数检查是否为平衡树,检查平衡因子旋转 AVL树 AVL树,全称Adelson-Velsky和Landis树,是一种自平衡…...
![](https://www.ngui.cc/images/no-images.jpg)
云计算遭遇的主要安全威胁
以下是详细说明云计算遭遇的所有主要安全威胁: 1. 数据泄露 描述:数据泄露是指未经授权的情况下访问和获取敏感数据。云计算环境中的数据泄露通常由于不安全的配置、软件漏洞或内部威胁造成。 案例: Capital One数据泄露:2019…...
![](https://i-blog.csdnimg.cn/direct/4a7e96cd8fb34e92ae4184d7f333b0ef.png)
[MySQL]02 存储引擎与索引,锁机制,SQL优化
Mysql存储引擎 可插拔式存储引擎 索引是在存储引擎底层上实现的 inno DB MySQL默认存储引擎: inno DB高可靠性和高性能的存储引擎 DML操作遵循ACID模型支持事务行级锁,提高并发访问性能支持外键 约束,保证数据完整性和可靠性 MySAM MySAM是MySQL的早期引擎 特点: 不支持事…...
![](https://www.ngui.cc/images/no-images.jpg)
ld,GNU 链接器介绍以及命令行参数详解
ld,GNU 链接器介绍以及命令行参数详解 当我们使用GCC编译源代码生成可执行程序,经过预处理、汇编、编译、链接四个阶段。 链接器(Linker)将多个目标文件和库文件链接起来,链接器还解决目标文件之间的符号引用ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
[web]-反序列化-base64
看到源码 <?php error_reporting(0); class A {public $contents "hello ctfer";function __toString(){if ((preg_match(/^[a-z]/i,$this->contents))) {system("echo $this->contents");return 111;}else{return "...";}} }functi…...
![](https://img-blog.csdnimg.cn/img_convert/7096e1f106be2e9f0579fb01660e0b58.jpeg)
【医学影像】RK3588+FPGA:满足远程诊疗系统8K音视频编解码及高效传输需求
医学影像 提供基于Intel平台、NXP平台、Rockchip平台的核心板、Mini-ITX主板、PICO-ITX主板以及工业整机等计算机硬件。产品板载内存,集成超高清编码/解码视频引擎,具有出色的数据处理能力和图形处理能力,功能高集成,可应用于超声…...
![](https://i-blog.csdnimg.cn/direct/69ee77b869574935b86a2a30dd41563a.png#pic_center)
昇思25天学习打卡营第16天|基于MindSpore通过GPT实现情感分类
文章目录 昇思MindSpore应用实践1、基于MindSpore通过GPT实现情感分类GPT 模型(Generative Pre-Training)简介imdb影评数据集情感分类 2、Tokenizer导入预训练好的GPT3、基于预训练的GPT微调实现情感分类 Reference 昇思MindSpore应用实践 本系列文章主…...
![](https://i-blog.csdnimg.cn/direct/4597a4f18f464522881e20cea6457130.png)
服务器借助笔记本热点WIFI上网
一、同一局域网环境 1、当前环境,已有交换机组网环境,服务器已配置IP信息。 设备ip服务器125.10.100.12交换机125.10.100.0/24笔记本125.10.100.39 2、拓扑图 #mermaid-svg-D4moqMym9i0eeRBm {font-family:"trebuchet ms",verdana,arial,sa…...
![](https://www.ngui.cc/images/no-images.jpg)
开发实战中Git的常用操作
Git基础操作 1.初始化仓库 git init解释:在当前目录中初始化一个新的Git仓库。 2.克隆远程仓库 git clone <repository-url>解释:从远程仓库克隆一个完整的Git仓库到本地。 3.检查当前状态 git status解释:查看当前工作目录的状态…...
![](https://i-blog.csdnimg.cn/direct/f1e85fbe95634583af0ffe002ce91830.png)
python调用chrome浏览器自动化如何选择元素
功能描述:在对话框输入文字,并发送。 注意: # 定位到多行文本输入框并输入内容。在selenium 4版本中,元素定位需要填写父元素和子元素名。 textarea driver.find_element(By.CSS_SELECTOR,textarea.el-textarea__inner) from …...
![](https://www.ngui.cc/images/no-images.jpg)
深入理解JS中的排序
在JavaScript开发中,排序是一项基础而重要的操作。本文将探讨JavaScript中几种常见的排序算法,包括它们的原理、实现方式以及适用场景。 1、冒泡排序 1.1、原理 通过比较相邻两个数的大小,交换位置排序:如果后一个数比前一个数小,则交换两个数的位置,重复这个过程,直…...
![](https://i-blog.csdnimg.cn/direct/027290ebb6a54e79a4d8e27275415d3e.png)
Kafka之存储设计
文章目录 1. 分区和副本的存储结构1. 分区和副本的分布2. 存储目录结构3. 文件描述 2. 相关配置3. 数据文件类型4. 数据定位原理LogSegment 类UnifiedLog 类 5. 副本数据同步HW水位线LEO末端偏移量HW更新原理 6. 数据清除 1. 分区和副本的存储结构 在一个多 broker 的 Kafka 集…...
![](https://www.ngui.cc/images/no-images.jpg)
Python面试整理-Python中的函数定义和调用
在Python中,函数是一种封装代码的方式,使得代码模块化和复用性更强。定义和调用函数是Python编程中的基本技能。以下是关于如何在Python中定义和调用函数的详细介绍: 函数定义 函数在Python中使用def关键字进行定义。函数体开始前,通常有一个可选的文档字符串(docstring)…...
![](https://i-blog.csdnimg.cn/direct/36567c4a89154d55990ad2c0ec392bb8.png)
HTTP协议、Wireshark抓包工具、json解析、天气爬虫
HTTP超文本传输协议 HTTP(Hyper Text Transfer Protocol): 全称超文本传输协议,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP 协议的重要特点: 一发一收…...
![](https://i-blog.csdnimg.cn/direct/8fe95432eef04591b6471d98f967863f.png#pic_center)
electron项目中实现视频下载保存到本地
第一种方式:用户自定义选择下载地址位置 渲染进程 // 渲染进程// 引入 import { ipcRenderer } from "electron";// 列表行数据下载视频操作,diffVideoUrl 是视频请求地址 handleDownloadClick(row) {if (!row.diffVideoUrl) {this.$message…...
![](https://i-blog.csdnimg.cn/direct/7d5890439ef44db199bbde18fac9100c.png)
基于chrome插件的企业应用
一、chrome插件技术介绍 1、chrome插件组件介绍 名称 职责 访问权限 DOM访问情况 popup 弹窗页面。即打开形式是通过点击在浏览器右上方的icon,一个弹窗的形式。 注: 展示维度 browser_action:所有页面 page_action:指定页面 可访问绝大部分api 不可以 bac…...
![](https://i-blog.csdnimg.cn/direct/ae8b0fcd512b4865bea93188194c05c5.png#pic_center)
unittest框架和pytest框架区别及示例
unittest框架和pytest框架区别及示例 类型unittest框架pytest框架unittest框架示例pytest框架示例安装python内置的一个单元测试框架,标准库,不需要安装第三方单元测试库,需要安装使用时直接引用 import unittest安装命令:pip3 install pyte…...
![](https://www.ngui.cc/images/no-images.jpg)
IDEA性能优化方法解决卡顿
文章目录 前言一、可以采取以下措施:二、VM Options的参数解释1. 内存设置2. 性能调优3. GC(垃圾回收)调优4. 调试和诊断5. 其它设置6.设置 VM Options 的步骤: 总结 前言 我们在使用 IntelliJ IDEA的时候有时候会觉得卡顿&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
Mysql集合转多行
mysql 集合转多行 SELECT substring_index(substring_index(t1.group_ids, ,, n), ,, -1) AS group_id FROM (select 908,909 as group_ids ) t1, (SELECT rownum : rownum 1 AS n FROM ( SELECT rownum : 0 ) r, orders ) t2 WHERE n < ( LENGTH( t1.group_ids ) - LENGT…...
![](https://www.ngui.cc/images/no-images.jpg)
MFC:只允许产生一个应用程序实例的具体实现
在MFC(Microsoft Foundation Class)应用程序中,如果你想限制只允许产生一个应用程序实例,通常会使用互斥体(Mutex)来实现。这可以确保如果用户尝试启动第二个实例时,它会被阻止或将焦点返回到已…...
![](https://www.ngui.cc/images/no-images.jpg)
深入理解TCP/IP协议中的三次握手
👍 个人网站:【洛秋资源小站】 深入理解TCP/IP协议中的三次握手 在计算机网络中,TCP/IP协议是通信的基石。理解TCP/IP协议中的三次握手是掌握网络通信的关键步骤之一。本文将详细解释TCP/IP协议中的三次握手过程,探讨其工作原理&…...
![](https://www.ngui.cc/images/no-images.jpg)
【React】事件绑定、React组件、useState、基础样式
React 教程 目录 事件绑定 1.1. 基础实现 1.2. 使用事件参数 1.3. 传递自定义参数 1.4. 同时传递事件对象和自定义参数 React 组件 2.1. 组件是什么 2.2. 组件基础使用 useState:状态管理 3.1. 基础使用 3.2. 状态的修改规则 3.3. 修改对象状态 基础样式 4.1. 行…...
![](https://www.ngui.cc/images/no-images.jpg)
x264、x265、libaom 编码对比实验
介绍 x264 是一个开源的高性能 H.264/MPEG-4 AVC 编码器,它以其优秀的压缩比和广泛的适用性而闻名。x265 是一种用于将视频流编码成 H.265/MPEG-H HEVC 压缩格式的免费软件库和应用程序,以其下一代压缩能力和卓越的质量而闻名 。作为 x264 的继任者,x265 支持 HEVC 的 Main、…...
![](https://i-blog.csdnimg.cn/direct/78f22f9ff0a649e798886f4abc130301.png)
c++网络编程实战——开发基于ftp协议的文件传输模块(二) 配置ftp服务与手动执行ftp命令
配置FTP服务 一.前言 博主的环境是阿里云服务器,操作系统版本为 ubuntu20.04,一下所有操作都基于以上环境下进行的操作,同时为了简化操作我将开放同一个云服务器的不同端口,让它同时充当服务端和客户端,大家如果想测试效果更好且…...
![](https://www.ngui.cc/images/no-images.jpg)
Sphinx 安装相关指令解释
安装指令 pip3 install sphinx-autobuildpip3 install sphinx_rtd_themepip3 install sphinx_markdown_tablepip3 install sphinx_markdown_tables pip3 install sphinx-autobuild 功能:安装 sphinx-autobuild 包。作用:sphinx-autobuild 是一个工具&am…...
![](https://img-blog.csdnimg.cn/20190718150528723.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p6emdkXzY2Ng==,size_16,color_FFFFFF,t_70)
动态网站收录/网络营销方案模板
1 问题出现 在跑demo的时候,写了个读取json,然后转换成HashMap的代码,结果发现fastjson报了类型转换异常: private static HashMap<String,ErrorDto> errorCodeCache;static {String s FileUtil.readResourceFile(ERROR_…...
![](https://img-blog.csdnimg.cn/img_convert/e0c1adc755fb8b68ea602c400549e0aa.png)
政法门户网站建设情况/南京百度提升优化
前言提到数据库索引,大家肯定很熟悉,在日常工作中经常会接触到。这几天看了不少相关文章、书籍和课程。决定自己总结一篇文章,虽然我写的这篇文章肯定不如网上各路大神的好文,但是自己总结一遍总归记得更牢固。这应该也是一种好的…...
![](http://k.sinaimg.cn/n/news/1_img/upload/c4b46437/547/w350h197/20190726/5275-iafwsqq2816079.gif)
电脑行业网站模板/蚁百杭州网站seo优化
计算机内据的病点是综合征最根本理生理特肾病。部能表示物是的治淋病疗药首选。直接爬行可以婴儿一般在几个月。和使大面的时体液积烧间通常是伤后渗出伤后。不会独立行走,用的有数心率每分钟76次,皮肤粗糙,体检:眼肿,…...
网站建设哪家最好/网页开发需要学什么
数组——基本语法除了Object之外,Array类型恐怕是ECMAScript中最常用的类型了,而且ECMAScript中的数组与其他语言中的数组有着相当大的区别。它的每一项可以保存任何类型的数据(也就是一个数组里面可以包含不同数据类型的值)。而且…...
![](/images/no-images.jpg)
网站 营销/常见的营销型网站
get 方式发送 $.get(url,{ 传入参数 }, function(响应体){ }, ‘json’); 或者 $.ajax({ url: ‘http://127.0.0.1:8000, data: { a:100}, type : GET, dataType:‘json’, success:function(({ 成功回调 }, error:function(({ 失败回调 }, timeiout:200…...
![](http://file.elecfans.com/web1/M00/51/D0/o4YBAFsPUJmAW178AACQi3MnT2A448.png)
本地旅游网站模版/公司网站推广方法
python神器 Jupyter Notbook 简介 Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。 Jupyter Notebook官方 简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面…...