【C++ 标准流,文件流】
C++ 标准流,文件流
- ■ 标准输入,输出流,
- ■ 文件流(ofstream写入,ifstream读取,fstream创建-写入-读取)
- ■ open()
- ■ ofstream
- ■ ifstream
- ■ 流插入<<
- ■ 文件位置指针
■ 标准输入,输出流,
iostream 标准库,它提供了 cin 和 cout 方法
■ 文件流(ofstream写入,ifstream读取,fstream创建-写入-读取)
1. C++ 源代码文件中包含头文件 <iostream> 和 <fstream>。
2.
| 数据类型 | 描述 |
|---|---|
| ofstream | 该数据类型表示输出文件流,用于创建文件并向文件写入信息。 |
| ifstream | 该数据类型表示输入文件流,用于从文件读取信息。 |
| fstream | 该数据类型通常表示文件流,且同时具有 ofstream 和 ifstream 两种功能,这意味着它可以创建文件,向文件写入信息,从文件读取信息。 |
■ open()
void open(const char *filename, ios::openmode mode);
| 模式标志 | 描述 |
|---|---|
| ios::app | 追加模式。所有写入都追加到文件末尾。 |
| ios::ate | 文件打开后定位到文件末尾。 |
| ios::in | 打开文件用于读取。 |
| ios::out | 打开文件用于写入。 |
| ios::trunc | 如果该文件已经存在,其内容将在打开文件之前被截断,即把文件长度设为 0。 |
■ ofstream
以写入模式打开文件,并希望截断文件,以防文件已存在
ofstream outfile;
outfile.open("file.dat", ios::out | ios::trunc );
■ ifstream
打开一个文件用于读写
ifstream afile;
afile.open("file.dat", ios::out | ios::in );
■ 流插入<<
流插入运算符( << )向文件写入信息
ifstream afile;
afile.open("file.dat", ios::out | ios::in );
示例一:
#include <fstream>
#include <iostream>
using namespace std;int main ()
{char data[100];// 以写模式打开文件ofstream outfile;outfile.open("afile.dat");cout << "Writing to the file" << endl;cout << "Enter your name: "; cin.getline(data, 100);// 向文件写入用户输入的数据outfile << data << endl;cout << "Enter your age: "; cin >> data;cin.ignore();// 再次向文件写入用户输入的数据outfile << data << endl;// 关闭打开的文件outfile.close();// 以读模式打开文件ifstream infile; infile.open("afile.dat"); cout << "Reading from the file" << endl; infile >> data; // 在屏幕上写入数据cout << data << endl;// 再次从文件读取数据,并显示它infile >> data; cout << data << endl; // 关闭打开的文件infile.close();return 0;
}
当上面的代码被编译和执行时,它会产生下列输入和输出:$./a.out
Writing to the file
Enter your name: Zara
Enter your age: 9
Reading from the file
Zara
9
■ 文件位置指针
istream 和 ostream 都提供了用于重新定位文件位置指针的成员函数。
这些成员函数包括关于
istream 的 seekg(“seek get”)
ostream 的 seekp(“seek put”)
seekg 和 seekp 的参数通常是一个长整型。
// 定位到 fileObject 的第 n 个字节(假设是 ios::beg)
fileObject.seekg( n );// 把文件的读指针从 fileObject 当前位置向后移 n 个字节
fileObject.seekg( n, ios::cur );// 把文件的读指针从 fileObject 末尾往回移 n 个字节
fileObject.seekg( n, ios::end );// 定位到 fileObject 的末尾
fileObject.seekg( 0, ios::end );
相关文章:
【C++ 标准流,文件流】
C 标准流,文件流 ■ 标准输入,输出流,■ 文件流(ofstream写入,ifstream读取,fstream创建-写入-读取)■ open()■ ofstream■ ifstream■ 流插入<<■ 文件位置指针 ■ 标准输入,…...
【排序】详解冒泡排序
一、思想 冒泡排序的基本思想是利用两两比较相邻记录的方式,通过一系列的比较和交换操作,使得较大或较小的元素逐渐移动到数列的一端。在每一轮的排序过程中,都会从数列的起始位置开始,对相邻的元素进行比较,如果它们…...
什么是Docker容器?
Docker是一种轻量级的虚拟化技术,同时是一个开源的应用容器运行环境搭建平台,可以让开发者以便捷方式打包应用到一个可移植的容器中,然后安装至任何运行Linux或Windows等系统的服务器上。相较于传统虚拟机,Docker容器提供轻量化的…...
(C++练习)选择题+编程题
个人主页:Lei宝啊 愿所有美好如期而遇 选择题 以下程序输出结果是什么() class A{public:virtual void func(int val 1){ std::cout<<"A->"<< val <<std::endl;}virtual void test(){ func();}};class B…...
【鸿蒙开发】第十五章 ArkTS基础类库-并发
1 简述 并发是指在同一时间段内,能够处理多个任务的能力。为了提升应用的响应速度与帧率,以及防止耗时任务对主线程的干扰,OpenHarmony系统提供了异步并发和多线程并发两种处理策略,ArkTS支持异步并发和多线程并发。并发能力在多…...
华为数通方向HCIP-DataCom H12-821题库(多选题:21-40)
第21题 管理员在配置 VRRP 时,下面哪些不是必须配置的? A.抢占模式 B.抢占延时 C.虚拟IP 地址 D.虚拟路由器的优先级 【参考答案】ABD 【答案解析】 VRRP的作用之一是提供一个虚拟的IP地址,用作默认网关,用来实现冗余和故障转移。因此,配置虚拟IP地址是必须的。华为设备vr…...
【简单模拟】第十三届蓝桥杯省赛C++ B组《刷题统计》(c++)
1.题目描述 小明决定从下周一开始努力刷题准备蓝桥杯竞赛。 他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目。 请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n 题? 2.输入格式 输入一行包含三个整数 a,b 和 n。…...
IO-DAY3
使用read和write实现文件夹拷贝功能 #include<stdio.h> #include<string.h> #include<stdlib.h> #include<unistd.h> #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> #include<dirent.h> int main(int argc,…...
python实现常见一元随机变量的概率分布
一. 随机变量 随机变量是一个从样本空间 Ω \Omega Ω到实数空间 R R R的函数,比如随机变量 X X X可以表示投骰子的点数。随机变量一般可以分为两类: 离散型随机变量:随机变量的取值为有限个。连续型随机变量:随机变量的取值是连…...
微服务学习
SpringCloud组成 服务注册与发现:consul 阿里Nacos 服务调用和负载均衡:OpenFeign LoadBalance 分布式事务:阿里Seata 服务熔断和降级:阿里Sentinel Circuit Breaker 服务链路追踪:Micrometer Tracing 服务网关:GateWa…...
【.NET Core】深入理解IO - 读取器和编写器
【.NET Core】深入理解IO - 读取器和编写器 文章目录 【.NET Core】深入理解IO - 读取器和编写器一、概述二、BinaryReader和BinaryWriter2.1 BinartReader类2.2 BinaryWriter类 三、StreamReader和StreamWriter3.1 StreamReader类3.1 StreamWriter类StreamWriter类构造函数Str…...
【Java项目介绍和界面搭建】拼图小游戏——添加图片
🍬 博主介绍👨🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 …...
「MySQL」基本操作类型
🎇个人主页:Ice_Sugar_7 🎇所属专栏:数据库 🎇欢迎点赞收藏加关注哦! 数据库的操作 创建、显示数据库 使用 create 创建一个数据库 create database goods;然后可以用 show databases 来查看已经创建的数…...
Android 14 权限
问题Android 14 按照视频播放类的应用 无法获取到权限。 原因是从 Android 13 开始,如果你的应用程序 targetSdk 指定到了 33 或以上,那么 READ_EXTRERNAL_STORGE 权限就完全失去了作用,申请它将不会产生任何效果。 与此相对应的,…...
Springboot整合SSE实现实时消息推送
SSE详细介绍传送门:SSE实时消息推送 简单描述一下SSE推送在实际项目中应用的常见场景 1,项目页面中有消息通知板块,当信息有变化时,只有手动刷新页面,才会看到最新的数据,这里可以采用SSE技术实时推送最新…...
在pytorch中利用GPU训练神经网络时代码的执行顺序并提高训练效率
在pytorch中利用GPU训练神经网络时代码的执行顺序并提高训练效率 在 PyTorch 中,大多数操作在 GPU 上默认是异步执行的,但这并不意味着它们是并行执行的。要理解代码是同步还是异步执行,以及是串行还是并行执行,我们需要考虑几个…...
vue3学习
距离vue2学习已经一年度了,现在开始vue3的学习。 一、webpack (1)创建列表隔行变色项目及webpack使用: 新建项目空白目录,并运行npm init -y命令,初始化包管理配置文件package.json; 新建sr…...
毫秒生成的时间戳如何转化成东八区具体时间
假设现在有一个时间是1709101071419L 后端代码实现 Java代码(东八区时间) 在Java代码中,我们将时区从UTC调整为东八区(UTC8): import java.time.Instant; import java.time.ZoneId; import java.time.Z…...
02. Nginx入门-Nginx安装
Nginx安装 yum安装 编辑yum环境 cat > /etc/yum.repos.d/nginx.repo << EOF [nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck1 enabled1 gpgkeyhttps://nginx.org/keys/nginx_signing.key module_…...
leetcode73. 矩阵置零
链接见:https://leetcode.cn/problems/set-matrix-zeroes/description/ 题目描述 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 AC代码 class Solution { public:void setZeroes(vec…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
