c++读写文件操作

2023-10-27

程序的运行产生的数据都是临时数据,不能持久的保存,一旦程序运行结束数据就会被释放。

在C++中对文件进行操作必须包含头文件<fstream>;

对文件操作的类

  1. fstream:可读可写操作
  2. ifstream:只能读操作
  3. ofstream:只能写操作

#include<iostream>
#include<fstream>//包含头文件
using namespace std;
int main()
{
	ofstream ofs;//创建流对象  ->往文件里写
	ofs.open("123.txt");//打开文件123.txt如果没有会自动创建,
	ofs << "我们可以写入文件了!";
	ofs.close();//关闭文件


	return 0;
}

文件ofs.open("123.txt",打开方式)

文件的打开方式

  1. ios::in 为读文件打开方式 
  2. ios::out 为写文件打开方式
  3. ios::ate 初始位置文件尾
  4. ios::app 写文件尾追加
  5. ios::trunc 若文件存在先删除,在创建
  6. ios::binary 二进制方式打开

#include<iostream>
#include<fstream>//包含头文件
using namespace std;
int main()
{
	ofstream ofs;//创建流对象  ->往文件里写
	ofs.open("123.txt",ios::app);//打开文件123.txt如果没有会自动创建,
	ofs << "我们可以写入文件了!";
	ofs << "啊哈!我又写了一行";//这行会追加在上一行后面
	ofs.close();//关闭文件


	return 0;
}

我们将文件中写好的数据读出

第一种读法

#include<iostream>
#include<fstream>//包含头文件
using namespace std;
int main()
{
	ifstream ifs("123.txt", ios::in);//创建流对象并按指定方式打开;ifstream ifs;ifs.open("123.txt",ios::in)等价
	if (!ifs.is_open())
	{
		cout << "文件不存在" << endl;
	}
	char arr[1024] = { 0 };
	while (ifs >> arr)
	{
		cout << arr << endl;
	}
	ifs.close();
	return 0;
}

第二种读法

#include<iostream>
#include<fstream>//包含头文件
using namespace std;
int main()
{
	ifstream ifs("123.txt", ios::in);
	if (!ifs.is_open())
	{
		cout << "文件不存在" << endl;
	}
	char arr[1024] = { 0 };
	while (ifs.getline(arr, sizeof(arr)))//按行读取
	{
		cout << arr << endl;
	}
	ifs.close();
	return 0;
}

 

 第三种字符串读取

#include<iostream>
#include<string>
#include<fstream>//包含头文件
using namespace std;
int main()
{
	ifstream ifs("123.txt", ios::in);
	if (!ifs.is_open())
	{
		cout << "文件不存在" << endl;
	}
	string arr;
	while (getline(ifs, arr))
	{
		cout << arr << endl;
	}
	
	ifs.close();
	return 0;
}

 

二进制读写 文件

  1. read()它属于ifs的成员函数,读取时需要调用
  2. write()它属于ofs的成员函数,写入时需要调用
#include<iostream>
#include<string>
#include<fstream>//包含头文件
using namespace std;
struct student
{
	string name;
	int age;
};
int main()
{
	ofstream ofs("12.txt", ios::out | ios::binary);
	student one = { "小明",12 };
	ofs.write((const char*)&one,sizeof(one));//我先将小明信息存入并关闭文件
	ofs.close();
	ifstream ifs("12.txt", ios::in | ios::binary);//我打开文件进行读取
	if (!ifs.is_open())
	{
		cout << "文件不存在" << endl;
	}
	ifs.read(( char*)&one, sizeof(one));
	cout <<"姓名:"<< one.name <<"年龄:"<< one.age << endl;
	ifs.close();
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++读写文件操作 的相关文章

  • 向进度条添加百分比文本 C#

    我有一个方法可以显示进程栏何时正在执行以及何时成功完成 我工作得很好 但我想添加一个百分比 如果完成 则显示 100 如果卡在某个地方 则显示更少 我在网上做了一些研究 但我无法适应我正在寻找的解决方案 这是我的代码 private voi
  • 未提供参数时如何指定 C# System.Commandline 行为?

    在我的控制台应用程序中 当未提供控制台参数时 将执行我指定列表 在本例中为参数 3 的任何处理程序 调用该处理程序时 布尔参数设置为 false 但对我来说 根本不调用它更有意义 如何防止这种情况发生并显示帮助文本 using System
  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • 为什么 int8_t 和用户通过 cin 输入显示奇怪的结果[重复]

    这个问题在这里已经有答案了 一小段代码让我发疯 但希望你能阻止我跳出窗外 看这里 include
  • 如何让 Swagger 插件在自托管服务堆栈中工作

    我已经用 github 上提供的示例重新提出了这个问题 并为任何想要自己运行代码的人提供了一个下拉框下载链接 Swagger 无法在自托管 ServiceStack 服务上工作 https stackoverflow com questio
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 回发后刷新时提示确认表单重新提交。我做错了什么?

    我有一个以空白 默认状态启动的仪表板 我让用户能够将保存的状态加载到仪表板中 当他们单击 应用 按钮时 我运行以下代码 function CloseAndSave var radUpload find radUpload1ID var in
  • 由 IHttpClientFactory 注入时模拟 HttpClient 处理程序

    我创建了一个自定义库 它会自动为依赖于特定服务的 Polly 策略设置HttpClient 这是使用以下方法完成的IServiceCollection扩展方法和类型化客户端方法 一个简化的例子 public static IHttpClie
  • 为什么调用非 const 成员函数而不是 const 成员函数?

    为了我的目的 我尝试包装一些类似于 Qt 共享数据指针的东西 经过测试 我发现当应该调用 const 函数时 会选择它的非 const 版本 我正在使用 C 0x 选项进行编译 这是一个最小的代码 struct Data int x con
  • 是否有实用的理由使用“if (0 == p)”而不是“if (!p)”?

    我倾向于使用逻辑非运算符来编写 if 语句 if p some code 我周围的一些人倾向于使用显式比较 因此代码如下所示 if FOO p some code 其中 FOO 是其中之一false FALSE 0 0 0 NULL etc
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • 如何设置 log4net 每天将我的文件记录到不同的文件夹中?

    我想将每天的所有日志保存在名为 YYYYMMdd 的文件夹中 log4net 应该根据系统日期时间处理创建新文件夹 我如何设置它 我想将一天中的所有日志保存到 n 个 1MB 的文件中 我不想重写旧文件 但想真正拥有一天中的所有日志 我该如
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 使用 C# 读取 Soap 消息

  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • WebSocket安全连接自签名证书

    目标是一个与用户电脑上安装的 C 应用程序交换信息的 Web 应用程序 客户端应用程序是 websocket 服务器 浏览器是 websocket 客户端 最后 用户浏览器中的 websocket 客户端通过 Angular 持久创建 并且
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • JetBrains软件使用经验(转载)

    版权声明 本文为博主原创文章 遵循 CC 4 0 BY NC SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net I love you dandan article details 997124
  • [python爬虫] Selenium切换窗口句柄及调用Chrome浏览器

    因为我的博客是根据我每个阶段自己做的事情而写的 所以前言可能有点跑题 但它更有利于让我回忆这个阶段自己的所作所为 这篇文章主要介绍Selenium爬虫获取当前窗口句柄 切换窗口句柄以及调用Chrome浏览器几个知识点 其中获取当前句柄的方法
  • 三元操作符

    通常N元操作符指的是该操作符有N个操作数 如赋值操作符 它是一个二元操作符 所以它有两个操作数 左右各一个 又如减号 是一个二元操作符 但是当它作为负号 使用的时候 便是一个一元操作符 它表示负数 所以只有一个操作数 那么 三元操作符理应有
  • python--unicodedata用法

    python unicodedata用法 需要掌握的 1 将Unicode字符 chr 转换为等效的数值 以浮点形式返回 print unicodedata numeric 四 4 0 2 将unicode字符 chr 转换为其等效的数字值
  • 【C语言初学必看】猜数字游戏背后的知识

    目录 前言 1 先看主体部分 大体逻辑的部分 a 为什么用do while循环 b switch语句 c 关于scanf 中的 d s 和 printf 的关系 d menu 和game 函数为什么没有返回值 e 为什么 intput 在w
  • ABAP 351 - 动态编程

    作为面对对象的编程语言 ABAP也是支持动态编程的 ABAP351作为一门独立的课程介绍了类反射机制如何实现的过程 一 Field Symbols Field Symbols 字段符号 在ABAP编程中经常使用 实际上它具备以下几点特性 字
  • citespace教程

    参考视频教程 CiteSpace保姆级教程1 文献综述怎么写 研究生写文神器 手把手教你做科学知识图谱 以中国知网为例 哔哩哔哩 bilibili Citespace 从下载到图谱分析 详细教程 基于CNKI和WOS 陈同学 哔哩哔哩 bi
  • “数”说程序员|“后浪”涌袭下的开发者现状

    红网时刻长沙10月23日讯 见习记者 赵翼鹏 10月23日至25日 长沙 中国1024程序员节 将盛大举行 为期3天的会议将以开源为主议题进行讨论 并包括了十多场技术论坛 多位操作系统领域大咖还将史上首次在岳麓山展开对话 为什么会是1024
  • BUCK和BOOST电路详解

    1 BUCK电路 BUCK是一种降压型电路 他的特征就是输出电压低于输入电压 输入的电流是脉动的 输出的电流是连续的 BUCK电路的原理图如下图所示 当开关管Q1驱动为高电平时 开关管导通 电感L1被充磁储能 流过电感的电流线性增加 同时给
  • 《无码的青春》第七章 御姐

    之前我们各有各的故事 各有各的守护 然而今天却成了同一类人 失去了各自的女神 失去了自己的信仰 没有了牵挂 也不再需要对什么人负责 四个单身男人 在这个浮华的城市里尽情的释放着过剩的荷尔蒙 周末我们会聚在道哥的酒吧里 在浮光掠影的酒精和静静
  • python3的turtle画模仿3d星空,运动的恒星小宇宙

    本文参考原文 http bjbsair com 2020 03 25 tech info 6248 html 1 宇宙 2 代码实现条件 python3 3 第1步 第1步 导入模块 from turtle import from rand
  • 8.Xaml Border控件

    1 运行图片 2 运行源码
  • 自定义滚动条@莫成尘

    先看代码 复制使用即可 以下代码均可复制粘贴使用 我将以注释的形式解释代码左右 您将看到以下效果 原生的滚动条比较方正 不够圆滑 很大程度上不能满足我们的审美 有时候需要修改其样式 滚动条的高度将随着内容的多少自适应
  • GOTC演讲回顾

    5月27 28日 由上海浦东软件园 开放原子开源基金会 Linux基金会亚太区和开源中国联合发起的2023全球开源技术峰会 Global Open source Technology Conference GOTC 在上海圆满召开 大会聚焦
  • Redis IO 多路复用底层的实现原理

    文章目录 前言 用户空间与内核空间 PIO 和 DMA PIO DMA 缓存I O和直接I O 缓存I O的读写操作 缓存I O的优点 缓存I O的缺点 直接I O的优点 IO的访问方式 磁盘IO 网络IO 磁盘IO和网络IO对比 同步IO
  • AG表格基础滚动分页-React版本

    AG表格滚动分页文档 AG表格在使用滚动分页时 不可使用rowData属性做为数据源 传入表格 因为AG的滚动分页 使用的是特殊表模型 所有正常模型下的API有可能会失效 使用AG滚动分页时 需把正常数据模型替换成滚动分页数据模型 示例 t
  • 30天自制操作系统学习-第2天

    第二天主要学习汇编语言与Makefile入门 1 继续开发 在这里先给出作者在第二天使用nask编写代码中涉及到的寄存器概念 AX accumulator 累加寄存器 CX counter 计数寄存器 DX data 数据寄存器 BX ba
  • 反射工具类导入Excel数据到数据库

    1 工作类代码 import org apache poi hssf usermodel HSSFWorkbook import org apache poi ss usermodel import org apache poi xssf
  • ubuntu20.04换国内清华源和安装docker

    写在前面 安装好ubuntu双系统后 默认的软件更新源是国外的 在国内使用速度很慢 用 apt install xxx 安装软件时可能出现 网络不可达 你的网络需要认证吗 无法定位软件包 等错误 所以我们需要更换成国内的源 这样才能正常安装
  • c++读写文件操作

    程序的运行产生的数据都是临时数据 不能持久的保存 一旦程序运行结束数据就会被释放 在C 中对文件进行操作必须包含头文件