c语言 如何创建txt文件,C++文本文件读写操作详解

2023-11-08

前面章节中,已经给大家介绍了文件流对象如何调用 open() 方法打开文件,并且在读写(又称 I/O )文件操作结束后,应调用 close() 方法关闭先前打开的文件。那么,如何实现对文件内容的读写呢?接下来就对此问题做详细的讲解。

在讲解具体读写文件的方法之前,读者首先要搞清楚的是,对文件的读/写操作又可以细分为 2 类,分别是以文本形式读写文件和以二进制形式读写文件。

1) 我们知道,文件中存储的数据并没有类型上的分别,统统都是字符。所谓以文本形式读/写文件,就是直白地将文件中存储的字符(或字符串)读取出来,以及将目标字符(或字符串)存储在文件中。

2) 而以二进制形式读/写文件,操作的对象不再是打开文件就能看到的字符,而是文件底层存储的二进制数据。更详细地讲,当以该形式读取文件时,读取的是该文件底层存储的二进制数据;同样,当将某数据以二进制形式写入到文件中时,写入的也是其对应的二进制数据。

举个例子,假设我们以文本形式将浮点数 19.625 写入文件,则该文件会直接将 "19.625" 这个字符串存储起来。当我们双击打开此文件,也可以看到 19.625。值得一提的是,由非字符串数据(比如这里的浮点数 19.625)转换为对应字符串(转化为 "19.625")的过程,C++ 标准库已经实现好了,不需要我们操心。

但如果以二进制形式将浮点数 19.625 写入文件,则该文件存储的不再是 "19.625" 这个字符串,而是 19.625 浮点数对应的二进制数据。以 float 类型的 19.625 来说,文件最终存储的数据如下所示:

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

c语言 如何创建txt文件,C++文本文件读写操作详解 的相关文章

  • 切片传递与指针传递到底有啥区别

    提出疑问 在Go的源码库或者其他开源项目中 会发现有些函数在需要用到切片入参时 它采用是指向切片类型的指针 而非切片类型 这里未免会产生疑问 切片底层不就是指针指向底层数组数据吗 为何不直接传递切片 两者有什么区别 例如 在源码log包中
  • Filter(过滤器)

    文章目录 1 Filter 的基本作用 2 Filter 的基本使用 3 Filter 的执行流程 4 Filter 执行需要注意的细节 4 1 拦截路径的配置 4 2 拦截路链 过滤器链 5 案例小结 登录验证 6 小结 1 Filter
  • 最近5年183个Java面试问题列表及答案[最全]

    Java 面试随着时间的改变而改变 在过去的日子里 当你知道 String 和 StringBuilder 的区别 String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象 因此在每次对 St
  • Java使用itext 生成PDF,以生成个人简历为例

    在日常的应用中经常会有需求 生成pdf或者word文档 常见的第三方工具有Apache的poi 以及itext等等 这里使用itext生成pdf 以个人简历作为示例 了解itextde 使用 第0步 效果 第一步 引入依赖包
  • Latent Dirichlet Allocation(LDA)主题模型理论

    LDA是给文本建模的一种方法 属于生成模型 生成模型是指该模型可以随机生成可观测的数据 LDA可以随机生成一篇由N个主题组成的文章 通过对文本的建模 可以对文本进行主题分类 判断相似度等 LDA通过将文本映射到主题空间 即认为一篇文章有若干
  • python嵌套列表转为字典_python如何把列表变字典

    现在有一个列表 list1 key1 key2 key3 把他转为这样的字典 key1 1 key2 2 key3 3 python将列表变字典的两种方法 1 方法 再构造一个列表list2 1 2 3 使用zip转换为元组后 在将元组转换
  • angular原理及模块简介

    本人前端小白 奈何在公司在做一个PC端的程序 用angular写 不得不自学了一下angular框架 虽然在工作过程中勉强勉强够了 但是觉得既然用了就稍微了解得全面一点 所以花了几个晚上看了一下angular的developer guide
  • Mysql 参数autoReconnect=true 解决8小时连接失效

    1 即使在创建Mysql时url中加入了autoReconnect true参数 一但这个连接两次访问数据库的时间超出了服务器端wait timeout的时间限制 还是会CommunicationsException The last pa
  • SIEBEL功能组件,eScript入门

    文章目录 前言 学习任务 一 MVG的配置与学习 1 1 M的MVG配置 以统计订单行数量功能为例 1 M M的MVG配置 二 View Mode Visibility配置 1 Personal安全性 2 Position安全性 三 EBC
  • anguarjs 上传图片预览_轻量级 Vue 图片上传组件V-Uploader

    今天给小伙伴们推荐一款超好用的Vue图片上传组件VUploader v uploader 基于vue2 x构建的简单易上手的图片上传组件 支持单张 多张图片 缩略图预览及拖拽上传功能 安装 npm i v uploader S 引入插件 i
  • gitlab迁移+升级

    一 目的 gitlab9 4 3迁移并升级到gitlab11 8 1 二 环境 原gitlab的版本为9 4 3 仓库位置已更改为 apps01 gitlab 三 操作步骤 迁移gitlab9 4 3 在新机器上安装好与原gitlab相同版
  • 【设计模式】外观模式

    外观模式 Facade Pattern 隐藏系统的复杂性 并向客户端提供了一个客户端可以访问系统的接口 这种类型的设计模式属于结构型模式 它向现有的系统添加一个接口 来隐藏系统的复杂性 这种模式涉及到一个单一的类 该类提供了客户端请求的简化
  • 数据库学习笔记_3_ER模型详解_约束

    一个ER模型必然需要对于其内容做出约束 接下来我们会从mapping cardinality 和participation constraints keys讲起 mapping cardinalities cardinality 字面意义是
  • python中[-1]、[:]、[:-1]、[::-1]、[::-2]、[2::]、[2::-1]用法

    a 0 1 2 3 4 5 6 7 8 9 10 11 12 a 1 列表a的最后一个元素 12 a 列表a的从0号元素到最后一个元素 0 1 2 3 4 5 6 7 8 9 10 11 12 a 1 列表a的从0号元素到倒数第二个元素 不
  • Centos7设置静态IP

    sudo vi etc sysconfig network scripts ifcfg
  • Docker部署Elasticsearch+Kibana

    方式1 编写docker compose yml version 3 7 services elasticsearch image elasticsearch 7 10 1 container name elasticsearch 001
  • AMOP 实践 (普通话题)

    普通话题不需要额外创建 消息的发布直接根据 AmopMsgOut 的setTopic 方法设置 本次消息发布的 topic 本次示例为 Java SDK 的使用测试 且使用代码完成 Topic 的创建以及订阅 1 订阅话题 1 1 创建一个
  • 多模态信息检索流程,多模态信息检索的商业应用,多模态信息检索涵盖技术与未来发展

    多模态信息检索流程 1 收集不同类型的信息 如文本 图像 音频 视频等 2 对不同类型的信息进行处理和识别 如图像识别 语音识别等 3 将不同类型的信息转化为统一的表示形式 如向量表示或语义空间表示 4 进行信息匹配和检索 比较不同类型的信
  • servlet的会话管理

    在Servlet规范中 Servlet的会话管理技术主要有4种 URL重写 Cookie 隐藏表单域以及HttpSession 在Java Servlet API中 javax servlet http HttpSession接口封装了Se

随机推荐

  • 异星工厂服务器资源修改,异星工厂存档怎么改到别的地方 异星工厂存档位置修改方法_游侠网...

    异星工厂存档怎么改到别的地方想必有些小伙伴还不是很清楚的吧 所以呢今天小编就为大家带来了异星工厂存档位置修改方法 一起来了解一下吧 异星工厂存档位置修改方法 首先我们找到 Factorio异星工厂的安装目录 然后 找到一个叫做config
  • Angular 表单验证

    模板驱动验证 使用模板驱动验证需要依赖于原生的HTML表单验证器 Angular 会用指令来匹配具有验证功能的这些属性 原生的HTMl验证器主要分两种 通过语义类型来进行定义 通过验证相关的属性来进行定义 语义类型 Input type C
  • Autoregressive Models

    The autoregressive model is one of a group of linear prediction formulas that attempt to predict an output y n of a syst
  • Matplotlib-快速上手-2

    Matplotlib Advanced 概述 一 基本可操作对象 1 1 Lines对象 1 2 Axes对象 重要 1 3 Ticks对象 1 4 Legend对象 1 5 Figure对象 1 6 Savefig对象 1 7 小总结 二
  • RabbitMq中间件下载与安装(window版+Centos7)

    RabbitMQ下载与安装 window版 rabbitmq下载安装 小阿杰的博客 CSDN博客 https www cnblogs com easy5weikai p 16217858 html Centos7安装RabbitMQ 安装
  • C语言printf中的自增自减运行

    源程序 int main int i 0 printf d d d n i i i return 0 我们预期的结果应该是 0 0 0 但实际结果为 0 1 0 原理我也弄得不是很明白 我借鉴了几篇文章 理解到了计算的方法 大家都知道pri
  • 在datagridview中添加button按钮

    前言 Net的DataGridView控件中 提供了一种列的类型 叫 DataGridViewButtonColumn 这种列类型是展示为一个 按钮 可以给button赋予相应的text 并且 此button可以用来做处理事件的判断依据 D
  • Linux系统管理员非常使用的几款工具推荐

    1 ExplainShell com 命令解释 对于Linux用户来说每天都会写各种命令和脚本 那么你可以使用这个网站工具来查看命令式如何工作的 这样可以避免不必要的错误出现 也是一个很好的学习命令的方式 2 BashrcGenerator
  • 使用 Builder 构建对象

    遇到多个构造器参数时 要考虑使用构建器 当遇到成员变量较多的类时 使用构造方法初始化对象会使得代码的可读性以及规范性变差 比如想知道某个参数的含义时必须要查看构造方法的定义源码 而且如果不消息颠倒了参数的顺序 编译器可能也不会报错 可以使用
  • 【Java集合 4】java character

    Java学习路线 搬砖工逆袭Java架构师 简介 Java领域优质创作者 CSDN哪吒公众号作者 Java架构师奋斗者 扫描主页左侧二维码 加入群聊 一起学习 一起进步 欢迎点赞 收藏 留言 目录 一 前言 二 ASCII控制字符 三 AS
  • Oracle数据库的启动

    lsnrctl start 启动监听 sqlplus nolog SQL gt conn as sysdba SQL gt startup 启动数据
  • 提高性能 MSSQL百万数据量 值得注意的30条优化技巧

    1 对查询进行优化 应尽量避免全表扫描 首先应考虑在 where 及 order by 涉及的列上建立索引 2 应尽量避免在 where 子句中对字段进行 null 值判断 否则将导致引擎放弃使用索引而进行全表扫描 如 select id
  • JSP动态网页开发技术

    一 学习目标 1 JSP概述 2 JSP指令 3 JSP 隐式对象 二 重点知识 1 JSP概述 JSP是什么 1 JSP全称Java Server Pages 是一种动态网页开发技术 它使用JSP标签在HTML网页中插入Java代码 标签
  • android控制电脑,安卓手机远程控制电脑教程详解

    当我们出门在外 没有电脑在身边 但又急需远程处理电脑上的事务时 怎么办呢 自从锤子出了手机远程协助后 没有锤子的人就急了 这里有个可以让所有Android手机和ios手机实现远程协助功能的小技巧 能 远程控制 远程控制 远程控制 windo
  • 初始gensim

    1 import jieba 2 import gensim 3 from gensim import corpora 4 from gensim import models 5 from gensim import similaritie
  • 复制CSDN文章,去掉代码前面行号的方法(及一些正则表达式小技巧)

    分享一些平时工作中常用的正则表达式小技巧 一 去掉代码前面行号的方法 idongchen modify 2018 12 5 csdn的markdown解析器蛮恶心的文章整体复制下来总有行号在前面 可以用正则找到这些行号给去掉就好 带点的 s
  • sqli-labs(29-31)

    序 这三关都是双服务器问题 网上很多教程都只考虑了apache 其实是php apache jsp tomcat 环境的搭建已经写在了另外一篇博客中 这里再推荐一下一个大牛写得很好的博客 里面把每关的原理都讲得很清晰 但是他里面关于本关的原
  • CV-对比学习-模型:MoCo/SimCLR/BYOL/SimSiam

    很多大佬认为 深度学习的本质就是做两件事情 Representation Learning 表示学习 和 Inductive Bias Learning 归纳偏好学习 在表示学习方面 如果直接对语义进行监督学习 虽然表现很好 但是它需要很多
  • lvs负载均衡、LVS集群部署

    四 LVS集群部署 lvs给nginx做负载均衡项目 218lvs DR 负载均衡器 yum y install ipvsadm 安装这个工具来管理lvs 设置VIP192 168 142 120 创建ipvsadm的文件用来存放lvs的规
  • c语言 如何创建txt文件,C++文本文件读写操作详解

    前面章节中 已经给大家介绍了文件流对象如何调用 open 方法打开文件 并且在读写 又称 I O 文件操作结束后 应调用 close 方法关闭先前打开的文件 那么 如何实现对文件内容的读写呢 接下来就对此问题做详细的讲解 在讲解具体读写文件