ios_base::out和ios::out、ios_base::in和ios::in、ios_base::app和ios::app等之间有什么区别吗?

2023年8月2日,周三晚上

今天我看到了这样的两行代码:

std::ofstream file("example.txt", std::ios_base::out);std::ofstream file("example.txt", std::ios::out);

这让我产生了几个疑问:

为什么有时候用ios_base::out,有时候用ios::out?

ios_base::out和ios::out之间有区别吗?

我花了一两个小时才搞清楚....


目录

  • 结论
  • ios_base类的 I/O 流控制标志有哪些
  • ios类的 I/O 流控制标志有哪些
  • 证明它们是一样的

结论

ios_base::out和ios::out之间没有区别,它们是一模一样的。

因为它们都是整形常量,而且数值一样,完全可以互相代替。

至于什么时候用哪个,我认为喜欢用哪个就用哪个,因为它们确实是一样的。

ios_base类的 I/O 流控制标志有哪些

  • std::ios_base::in:输入模式,表示以读取方式打开流。
  • std::ios_base::out:输出模式。
  • std::ios_base::app:追加模式,表示以写入方式打开流,并将数据追加到文件末尾而不清除原有内容。
  • std::ios_base::trunc:截断模式,表示以写入方式打开流,并清除文件原有内容。
  • std::ios_base::binary:二进制模式,以二进制方式打开流。
  • std::ios_base::ate:打开流后将文件指针定位到文件末尾。

ios类的 I/O 流控制标志有哪些

  • std::ios::in:输入模式,表示以读取方式打开流。
  • std::ios::out:输出模式。
  • std::ios::app:追加模式,表示以写入方式打开流,并将数据追加到文件末尾而不清除原有内容。
  • std::ios::trunc:截断模式,表示以写入方式打开流,并清除文件原有内容。
  • std::ios::binary:二进制模式,以二进制方式打开流。
  • std::ios::ate:打开流后将文件指针定位到文件末尾。

证明它们是一样的

#include<iostream>
#include<fstream>int main(){printf("ios_base::in的值:%d\n",std::ios_base::in);printf("ios::in的值:%d\n",std::ios::in);printf("-------------\n");printf("ios_base::out的值:%d\n",std::ios_base::out);printf("ios::out的值:%d\n",std::ios::out);printf("-------------\n");printf("ios_base::app的值:%d\n",std::ios_base::app);printf("ios::app的值:%d\n",std::ios::app);printf("-------------\n");printf("ios_base::trunc的值:%d\n",std::ios_base::trunc);printf("ios::trunc的值:%d\n",std::ios::trunc);printf("-------------\n");printf("ios_base::binary的值:%d\n",std::ios_base::binary);printf("ios::binary的值:%d\n",std::ios::binary);printf("-------------\n");printf("ios_base::ate的值:%d\n",std::ios_base::ate);printf("ios::ate的值:%d\n",std::ios::ate);printf("-------------\n");}

 

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

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

相关文章

HarmonyOS应用开发者基础与高级认证题库——中级篇

系列文章目录 HarmonyOS应用开发者基础与高级认证题库——基础篇 HarmonyOS应用开发者基础与高级认证题库——中级篇 文章目录 系列文章目录前言一、判断二、单选三、多选 前言 今天刚换了台果子手机就收到了华子鸿蒙开发认证邀请&#xff08;认证链接&#xff09;&#xff0…

从零开始,探索Python变量的奥秘!

在Python这个充满魔力的编程世界中&#xff0c;变量是一门必须深入了解的基础知识。无论你是初学者还是有经验的开发者&#xff0c;掌握变量的基本语法对于编写优雅、高效的代码至关重要。本篇博客将带你从零开始&#xff0c;深入探索Python变量的奥秘&#xff0c;让你在编程之…

LeetCode150道面试经典题-合并两个有序数组(简单)

合并两个有序数组 题目&#xff1a; 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&a…

UEditorPlus v3.3.0 图片上传压缩重构,UI优化,升级基础组件

UEditor是由百度开发的所见即所得的开源富文本编辑器&#xff0c;基于MIT开源协议&#xff0c;该富文本编辑器帮助不少网站开发者解决富文本编辑器的难点。 UEditorPlus 是有 ModStart 团队基于 UEditor 二次开发的富文本编辑器&#xff0c;主要做了样式的定制&#xff0c;更符…

【小沐学C++】C++ 基于CMake构建工程项目(Windows、Linux)

文章目录 1、简介2、下载cmake3、安装cmake4、测试cmake4.1 单个源文件4.2 同一目录下多个源文件4.3 不同目录下多个源文件4.4 标准组织结构4.5 动态库和静态库的编译4.6 对库进行链接4.7 添加编译选项4.8 添加控制选项 5、构建最小项目5.1 新建代码文件5.2 新建CMakeLists.txt…

DataGrip 配置 HiveServer2 远程连接访问

文章目录 集群配置 HiveServer2 服务DataGrip 配置 HiveServer2 访问 Hive 集群配置 HiveServer2 服务 1.在 Hive 的配置文件 hive-site.xml 中添加如下参数&#xff1a; <!-- 指定 HiveServer2 运行端口&#xff0c;默认为&#xff1a;10000 --><property><na…

3理解图像本质-AI-python

下载Jupyter Lab 代码如下&#xff1a; import numpy as np //导入包 import matplotlib.pyplot as plt //为了显示图片要导入另一个图 %matplotlib inline //显示图片防止出错&#xff0c;在行内显示 from PIL import Image //读取图片 img Image.open(E:/ANCONDA/AI_Pyth…

Gitlab CI/CD笔记-第二天-GitOps的流水线常用关键词(1)

一、常用关键词 在Gitlab项目的根目录需要创建一个 .gitlab-ci.yaml的文件。 这个文件就是定义的流水线。Call :"Pipeline as code" 二、这条流水线怎么写&#xff1f; 一、掌握常用的关键词即可。 1.关键词分类 1.全局关键词 Global Keywards 2.任务关键词…

如何剪裁操作系统源码——移植FreeRTOS的内存管理模块到ARMV8裸片

如何剪裁操作系统源码 本文面向的需求场景是&#xff0c;为缺乏标准库实现的处理器IP移植内存管理模块&#xff0c;即为裸片部署C标准库中的 malloc() 和 free() 函数。 具体做法是——从操作系统的内存管理组件中剪裁出必要的源码&#xff0c;适配到目标处理器的开发环境&am…

极狐GitLab 全新「价值流仪表盘」使用指南

本文来源&#xff1a;about.gitlab.com 作者&#xff1a;Haim Snir 译者&#xff1a;极狐(GitLab) 市场部内容团队 GitLab / 极狐GitLab 价值流仪表盘的使用相对简单&#xff0c;这种可以定制化的仪表盘能够让决策者识别数字化转型进程中的趋势及机遇。 如果你已经在用 GitLab…

爬虫008_流程控制语句_if_if else_elif_for---python工作笔记026

然后我们再来看一下这里的,判断,可以看到 再看一个判断,这里的布尔类型 第二行有4个空格,python的格式 注意这里,输入的age是字符串,需要转一下才行 int可以写到int(intput("阿斯顿法师打发地方")) 这样也可以

Pandas 的Merge函数详解

在日常工作中&#xff0c;我们可能会从多个数据集中获取数据&#xff0c;并且希望合并两个或多个不同的数据集。这时就可以使用Pandas包中的Merge函数。在本文中&#xff0c;我们将介绍用于合并数据的三个函数 merge、 merge_ordered、 merge_asofmerge merge函数是Pandas中…