第七节 文件与流

基本的输入输出(iostream)

C++标准库提供了一组丰富的输入/输出功能,C++的I/O发生在流中,流是字节序列。如果字节流是从设备(键盘、磁盘驱动器、网络连接等)流向内存,叫做输入操作。如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),叫做输出操作

重要的头文件:

setw主要用来控制输出的格式

标准输出流(cout)

预定义的对象cout是iostream类的一个实例。

cout对象连接到标准输出设备,通常是显示屏。cout与流插入运算符<<结合使用,如下所示:

#include <iostream>
using namespace std;int main()
{char c[] = "Hello world";cout << c << endl;return 0;
}

标准输入流(cin)

预定义的对象cin是iostream类的一个实例。

cin的对象附属到标准输入设备,通常是键盘。cin是与流提取运算符>>结合使用的,如下所示:

#include <iostream>
using namespace std;int main()
{char name[50];cout << "您的姓名是:" << endl;cin >> name;cout << "您的姓名是:" << name << endl;return 0;
}

文件操作(fstream)

要在C++进行文件处理,必须在源代码文件中包含头文件<iostream><fstream>

打开文件

ofstream和fstream都可以打开文件进行写操作,ifstream打开文件进行读操作

open()函数是ofstream、fstream、ifstream对象的一个成员函数

第一个参数指定要打开的文件名称和位置,第二个参数定义文件被打开的模式

第二个参数具体有以下五种模式:

以上模式可以结合使用。

例如,我们想要以写入模式打开文件,并希望截断文件,以防文件已经存在,可以使用下面的语法:

ofstream outfile;
outfile.open("file.dat", ios::out | ios::trunc);

如果我们相打开一个文件用于读写,可以用以下语法:

ofstream outfile;
outfile.open("file.dat", ios::out | ios::in);

关闭文件

close()函数,是是ofstream、fstream、ifstream对象的一个成员函数。

void close();

示例

以读写模式打开一个文件,在向文件afile.dat写入用户输入的信息之后,程序从文件读取信息,并将其输出到屏幕上。

文件中数据的输入输出都是逐行进行的。

示例:

#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" << endl;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;//从文件中输出数据到datacout << data << endl;//data输出到屏幕上infile >> data;//再次从文件读取数据cout << data << endl;//再次显示数据infile.close();//关闭打开的文件return 0;
}

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

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

相关文章

算法篇——动态规划

核心思想&#xff1a; 将问题分解为重叠的子问题&#xff0c;并储存子问题的解&#xff08;使用字典、数组或哈希表&#xff09;&#xff0c;避免重复计算&#xff0c;从而提高效率。 题目特点&#xff1a;重叠子问题&#xff08;特殊地&#xff0c;是最优子结构&#xff09; …

redis高级数据结构Stream

文章目录 背景stream概述消息 ID消息内容常见操作独立消费创建消费组消费 Stream弊端Stream 消息太多怎么办?消息如果忘记 ACK 会怎样?PEL 如何避免消息丢失?分区 Partition Stream 的高可用总结 背景 为了解决list作为消息队列是无法支持消息多播问题&#xff0c;Redis5.0…

ASP.NET Core WebSocket、SignalR

目录 WebSocket SignalR SignalR的基本使用 WebSocket WebSocket基于TCP协议&#xff0c;支持二进制通信&#xff0c;双工通信。性能和并发能力更强。WebSocket独立于HTTP协议&#xff0c;不过我们一般仍然把WebSocket服务器端部署到Web服务器上&#xff0c;因为可以借助HT…

多路文件IO

一、思维导图

在CT107D单片机综合训练平台上,8个数码管分别单独依次显示0~9的值,然后所有数码管一起同时显示0~F的值,如此往复。

题目&#xff1a;在CT107D单片机综合训练平台上&#xff0c;8个数码管分别单独依次显示0~9的值&#xff0c;然后所有数码管一起同时显示0~F的值&#xff0c;如此往复。 延时函数分析LED首先实现8个数码管单独依次显示0~9的数字所有数码管一起同时显示0~F的值&#xff0c;如此往…

小红书提出新面部视频交换方法DynamicFace,可生成高质量且一致的视频面部图像。

DynamicFace是一种新颖的面部视频交换方法&#xff0c;旨在生成高质量且一致的视频面部图像。该方法结合了扩散模型的强大能力和可插拔的时间层&#xff0c;以解决传统面部交换技术面临的两个主要挑战&#xff1a;在保持源面部身份的同时&#xff0c;准确传递目标面部的运动信息…

2025.2.9机器学习笔记:PINN文献阅读

2025.2.9周报 文献阅读题目信息摘要Abstract创新点网络架构实验结论缺点以及后续展望 文献阅读 题目信息 题目&#xff1a; GPT-PINN:Generative Pre-Trained Physics-Informed Neural Networks toward non-intrusive Meta-learning of parametric PDEs期刊&#xff1a; Fini…

天津三石峰科技——汽车生产厂的设备振动检测项目案例

汽车产线有很多传动设备需要长期在线运行&#xff0c;会出现老化、疲劳、磨损等 问题&#xff0c;为了避免意外停机造成损失&#xff0c;需要加装一些健康监测设备&#xff0c;监测设备运 行状态。天津三石峰科技采用 12 通道振动信号采集卡&#xff08;下图 1&#xff09;对…

CSGHub高效管理|解锁DeepSeek R1蒸馏模型 :高效推理的新选择

在大模型的新时代&#xff0c;如何在保持高推理能力的同时降低计算成本&#xff0c;已经成为企业和开发者们关注的核心问题。 你是否也在寻找一个既强大又高效的AI模型&#xff1f; DeepSeek R1&#xff0c;作为目前领先的AI模型之一&#xff0c;不仅推出了强大的671B参数旗舰模…

来自国外的实用软件 ,已接触所有限制!

今天我给大家带来了一款超棒的全自动抠图软件&#xff0c;真的是一个来自国外的宝藏工具&#xff01;而且好消息是&#xff0c;它现在完全解除了限制&#xff0c;可以无限畅快地使用了。 Teorex PhotoScissors 抠图软件 这款软件特别贴心&#xff0c;根本不需要安装&#xff0…

win32汇编环境,结构体的使用示例一

;运行效果 ;win32汇编环境,结构体的使用示例一 ;举例说明结构体的定义&#xff0c;如何访问其中的成员&#xff0c;使用assume指令指向某个结构体&#xff0c;利用偏移得到成员值等 ;直接抄进RadAsm可编译运行。重要部分加备注。 ;下面为asm文件 ;>>>>>>>…

Ai无限免费生成高质量ppt教程(deepseek+kimi)

第一步&#xff1a;打开deepseek官网&#xff08;DeepSeek) 1.如果deepseek官网网络繁忙&#xff0c;解决方案如下&#xff1a; (1)使用easychat官网&#xff08;EasyChat&#xff09;使用deepseek模型&#xff0c;如图所示&#xff1a; &#xff08;2&#xff09;本地部署&…

C#常用集合优缺点对比

先上结论&#xff1a; 在C#中&#xff0c;链表、一维数组、字典、List<T>和ArrayList是常见的数据集合类型&#xff0c;它们各有优缺点&#xff0c;适用于不同的场景。以下是它们的比较&#xff1a; 1. 一维数组 (T[]) 优点&#xff1a; 性能高&#xff1a;数组在内存中…

大数据项目2a:基于spark的电影推荐和分析系统设计与实现

1、项目目的 本项目的目的是设计并实现一个基于Spark的电影推荐系统&#xff0c;以应对大数据环境下电影推荐服务的挑战。通过整合电影、评分和用户数据集&#xff0c;并利用SparkSql框架进行高效处理&#xff0c;系统能够为用户提供个性化的电影推荐。项目采用多种先进技术&…

CANoe工具使用技巧 --- 如何使用 “on ethernetPacket “事件处理程序

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…

数据库5(MySQL版)

作业要求 触发器 mysql> create trigger after_order_insert -> after insert on orders -> for each row -> update goods set num num - new.onum where gid new.gid; mysql> create trigger after_order_delete -> after delete on or…

【异常解决】在idea中提示 hutool 提示 HttpResponse used withoud try-with-resources statement

博主介绍&#xff1a;✌全网粉丝22W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…

浅析Ruby类污染及其在Sinatra框架下的利用

和JavaScript中的原型链污染类似&#xff0c;Ruby中也存在类似的概念——类污染&#xff0c;两者都是对象进行不安全的递归合并导致的。 网上也没有相关的分析文章&#xff0c;只有下面这篇文章应该是第一次谈到这个问题 Class Pollution in Ruby: A Deep Dive into Exploiti…

SamWaf开源轻量级的网站应用防火墙(安装包),私有化部署,加密本地存储的数据,易于启动,并支持 Linux 和 Windows 64 位和 Arm64

一、SamWaf轻量级开源防火墙介绍 &#xff08;文末提供下载&#xff09; SamWaf网站防火墙是一款适用于小公司、工作室和个人网站的开源轻量级网站防火墙&#xff0c;完全私有化部署&#xff0c;数据加密且仅保存本地&#xff0c;一键启动&#xff0c;支持Linux&#xff0c;Wi…

14vue3实战-----获取用户信息和用户的菜单树信息

14vue3实战-----获取用户信息和用户的菜单树信息 1.获取用户信息1.1封装接口1.2优化 2.获取用户的菜单树信息 1.获取用户信息 1.1封装接口 后端有根据id获取用户信息的接口&#xff0c;前端需要把该接口封装一下: service/login/login.ts&#xff1a; import hyRequest from…