C++ I/O流(二)——输入流

四、文件输入流

 istream类最适合用于顺序文本模式输入

 ifstream类支持磁盘文件输入

istringstream类支持把字符串作为输入流

提取运算符(>>):

使用进制修饰符,修改输入数据的进制形式。

代码示例:输入三个十进制数,转换为三种不同的进制数,并输出。

#include <iostream>
#include <iomanip>//引用控制输出的头文件
using namespace std;int main()
{int n1,n2,n3;cin>>hex>>n1>>dec>>n2>>oct>>n3;cout<<"-------------"<<endl;cout<<n1<<endl<<n2<<endl<<n3<<endl;return 0;
}

运行结果:

10
10
10
-------------
16
10
8

五、文件输入流

文件输入流ifstream及其对象

在C++中,文件输入流ifstream用于从文件中读取数据。首先需要包含<fstream>头文件,然后可以按照以下步骤来操作文件输入流ifstream及其对象:

1、创建ifstream对象:可以通过以下方式创建一个ifstream对象并打开文件:

#include <fstream>
ifstream file("example.txt")

2、检查文件是否成功打开:在创建ifstream对象后,需要检查文件是否成功打开,可以使用is_open()方法:

if (file.is_open()) {// 文件成功打开
} else {// 文件打开失败
}

3、从文件中读取数据:可以使用ifstream对象的各种输入操作符(如>>)来从文件中读取数据:

int number;
file >> number; // 从文件中读取一个整数并存储在number变量中

4、逐行读取文件内容:如果需要逐行读取文件内容,可以使用getline()方法:

string line;
while (getline(file, line)) {// 处理每一行的内容
}

注:getline的功能是从输入流中读取多个字符,并且允许指定输入终止字符,读取完成后,从读取的内容中删除终止字符。 

5、当数据输入完成后,关闭文件:在文件操作完成后,记得关闭文件以释放资源:

file.close();

六、案例分析

1、定义函数input,通过键盘输入一组文字(多行),保存到文本文件abc.txt中。

2、定义函数output,打开文本文件abc.txt,逐行读出文字,在控制台输出。(getline函数)

#include <iostream>
#include <fstream>
#include <string>
using namespace std;void input()
{ofstream os("abc.txt");//os文件输入流对象string line;if(os){while(getline(cin,line))//将输入的字符串保存到line中{if(line == "quit"){break;}os<<line<<endl;}os.close();}
}
void output()
{ifstream is("abc.txt");string line;if(is){while(getline(is,line)){cout<<line<<endl;}is.close();}
}
int main()
{cout<<"请输入信息,以'quit'结束"<<endl;input();cout<<"保存到文件中的信息有:"<<endl;output();return 0;
}

运行结果:生成abc.txt文件,并将输入的信息保存到文件中。

请输入信息,以'quit'结束
dfasdf
dfa
adfdasg
quit
保存到文件中的信息有:
dfasdf
dfa
adfdasg

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

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

相关文章

Milvus的系统架构

简介 Milvus的构建在许多知名的向量搜索库比如Faiss, HNSW, DiskANN, SCANN等之上的&#xff0c;它针对稠密向量数据集的相似搜索而设计&#xff0c;能支持百万、十亿甚至万亿级别的向量搜索。 Milvus支持数据分片&#xff0c;流式数据插入&#xff0c;动态schema&#xff0c…

STM32手写寄存器的方式实现点亮LED灯

这次是从头开始学习STM32&#xff0c;看野火的视频开始学习&#xff0c;感觉需要记录的时候就要记录一下学习的心得。野火视频学习的老师讲的还是很到位的&#xff0c;能够学习到很多的细节之处&#xff0c;有时会感觉很啰嗦&#xff0c;但是不得不说确实很详细&#xff0c;只有…

线程池 ThreadPool

一般情况下我们都使用Thread类创建线程&#xff0c;因为通过Thread对象可以对线程进行灵活 的控制。但过多创建线程和销毁线程&#xff0c;会消耗掉大量的内存和CPU资源&#xff0c; 假如某段时间内突然爆发了100个短小的线程&#xff0c;创建和销毁这些线程就会消耗很多时间&a…

SAP_ABAP-思考篇

作为一个SAP十年左右的从业者&#xff0c;其实我很清楚&#xff0c;我自身的能力&#xff0c;确实是很多东西都会一点&#xff0c;但是没有一样是精通的。坦白来说&#xff0c;我的个人简介里&#xff0c;虽然也不算夸大&#xff0c;但我估计有些新手小白看着可能会觉得还挺厉害…

24pht春5

pht春5 A 相当于规定了每一位的操作次数的奇偶性。 随便排序显然不影响。 因此有 f i f i − 1 i n f i 1 n − i n f_if_{i-1}\times \dfrac i nf_{i1}\times \dfrac{n-i}n fi​fi−1​ni​fi1​nn−i​&#xff0c;是个经典问题&#xff0c;差分一下&#xff1f; 设…

【氮化镓】高电容密度的p-GaN栅电容在高频功率集成中的应用

这篇文章是香港科技大学Kevin J. Chen等人与台积电M.-H. Kwan等人关于高电容密度的p-GaN栅电容在高频功率集成中的应用研究。 文章详细介绍了p-GaN栅电容的设计、特性和在高频功率集成中的应用。通过实验数据和理论分析&#xff0c;文章展示了p-GaN栅电容在实现高电容密度、低…

Oracle工作中使用的语句

加油&#xff0c;新时代打工人&#xff01; oracle 更新表A的状态&#xff0c;在表B存在表A的数据&#xff0c;如果有更新表A的状态 UPDATE TableA A SET A.状态列 所需的新状态 WHERE EXISTS (SELECT 1FROM TableB BWHERE B.关键列 A.关键列 );Oracle Exists、 NOT Exists用…

2.前端路由的配置和使用

一&#xff0c;路由的作用 路由的作用就是将页面文件跟URL地址形成对应匹配 二&#xff0c;如何安装路由 这里我们采用pnpm的方式在项目中执行 pnpm install vue-routernext --save三&#xff0c;路由如何使用 首先创建一个我们需要访问的页面文件&#xff0c;这里我先创建…

搭建一套知识付费系统需要多少钱,怎么在朋友圈销售网课?怎么做好?

如果说互联网中哪些地方人流量最多的话&#xff0c;微信肯定榜上有名&#xff0c;可见微信的普及度非常高了&#xff0c;而微信中的朋友圈也是销售课程的好地方&#xff0c;但是想要做好缺不容易。下面我们从三个维度聊聊朋友圈销售网课如何做好? 一、朋友圈封面设计 1、易记、…

二.使用PgAdmin连接Postgresql

二.使用PgAdmin连接Postgresql PostgreSQL是一种开源的对象关系型数据库管理系统(ORDBMS),它支持大部分SQL标准并提供了许多高级功能,例如事务、外键、视图、触发器等。PostgreSQL由PostgreSQL全球开发组维护和开发,它是一种高度可扩展的数据库系统,可以在各种操作系统…

CG渲染中材质的作用

在计算机图形&#xff08;CG&#xff09;渲染中&#xff0c;材质&#xff08;Material&#xff09;起着至关重要的作用&#xff0c;它决定了物体表面的外观和特性。以下是材质在 CG 渲染中的主要作用&#xff1a; 表面外观&#xff1a;材质决定了物体表面的外观&#xff0c;包括…

web学习笔记(五十五)

目录 1. 配置代码片段的步骤 2. 条件判断 2.1 v-if、v-else、v-else-if 2.2 v-show 2.3 v-show和v-if的区别 1. 配置代码片段的步骤 在Visual Studio Code中我们可以将常用的代码配置成代码片段&#xff0c;这样就可以在页面上快速输入大段代码了。 &#xff08;1&#…

22 优化日志文件统计程序-按月份统计每个用户每天的访问次数

读取任务一中序列文件&#xff0c;统计每个用户每天的访问次数&#xff0c;最终将2021/1和2021/2的数据分别输出在两个文件中。 一、创建项目步骤&#xff1a; 1.创建项目 2.修改pom.xml文件 <packaging>jar</packaging> <dependencies><dependency>…

HNU-算法设计与分析-作业1

算法设计与分析 计科210X 甘晴void 202108010XXX 前言 这个系列本来想只用一个博客搞定的&#xff0c;谁曾想CSDN对于大批量文字的在线编辑一塌糊涂&#xff0c;感觉走倒车了。只能分成几个博客分别来讲了。后续会有作业-23456。作业重要的是搞懂原因。 文章目录 算法设计与…

python manage.py 命令大全

以下是常见的 Django 管理命令列表及其用途&#xff1a; startapp&#xff1a;创建一个新的 Django 应用程序。 startproject&#xff1a;创建一个新的 Django 项目。 runserver&#xff1a;启动开发服务器。 makemigrations&#xff1a;根据你对模型的更改创建迁移文件。 …

【数据结构】时间、空间复杂度实例分析

跌倒了&#xff0c;就重新站起来&#xff0c;继续向前走&#xff1b;傻坐在地上是没用的。&#x1f493;&#x1f493;&#x1f493; 目录 •✨说在前面 &#x1f34b;知识点一&#xff1a;算法的效率 • &#x1f330;1.斐波那契数列的第n项 • &#x1f330;2.算法的复杂度…

破解OKR落地难题:撰写阶段的陷阱与策略

OKR&#xff08;Objectives and Key Results&#xff0c;目标与关键成果&#xff09;作为一种目标管理工具&#xff0c;已经被越来越多的企业所采纳。然而&#xff0c;OKR的落地实施并非一帆风顺&#xff0c;尤其在撰写阶段&#xff0c;往往会遇到各种陷阱和挑战。本文将详细分…

001_PyQt简介

本系列面向零基础小白&#xff0c;从零开始到Pyqt 进行项目实战。 什么叫从零开始&#xff1f;从软件安装、环境配置开始。 不跳过一个细节&#xff0c;不漏掉一行代码&#xff0c;不省略一个例图。 PyQt作为一个强大的工具包&#xff0c;成功地将脚本语言python和QT库融合到…

nginx反向代理kafka集群实现内外网隔离访问 —— 筑梦之路

背景说明 我们在使用Kafka客户端连接到Kafka集群时&#xff0c;即使连接的节点只配置了一个集群的Broker地址&#xff0c;该Broker将返回给客户端集群所有节点的信息列表。然后客户端使用该列表信息&#xff08;Topic的分区信息&#xff09;再与集群进行数据交互。这里Kafka列表…

代码随想录算法训练营第36期DAY29

DAY29 39组合总和 class Solution {private: vector<vector<int>> result; vector<int>path; void backtracking(vector<int> candidates,int target,int sum,int startindex){ if(sum>target) return; if(sumtarget){ …