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

这篇具有很好参考价值的文章主要介绍了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");
	
	
}

ios_base::out和ios::out、ios_base::in和ios::in、ios_base::app和ios::app等之间有什么区别吗?,我的博客,c++

 文章来源地址https://www.toymoban.com/news/detail-630198.html

到了这里,关于ios_base::out和ios::out、ios_base::in和ios::in、ios_base::app和ios::app等之间有什么区别吗?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android 系统源码目录frameworks/base/packages和packages/apps下的APP区别

    概要 在 Android Open Source Project (AOSP) 源代码中,frameworks/base/packages 和 packages/apps 目录都包含 Android 系统中的应用程序,但它们在性质和用途上有一些区别: 1,frameworks/base/packages frameworks/base 目录包含 Android 系统的核心框架代码。 frameworks/base/packages子目录包含系统级应用程序或

    2024年02月09日
    浏览(38)
  • 云计算与区块链之间有什么区别?

    区块链是一种去中心化的分布式数字账本,可实现安全透明的交易和数据存储。 它使用节点网络来验证和验证交易。 云计算通过互联网提供计算资源,例如服务器、存储和软件。区块链是一种分散且不可变的虚拟数据分类账,用于维护交易信息和监控网络上的数字内容。 云

    2024年02月01日
    浏览(39)
  • HTTP 与 HTTPS 之间有什么区别?

            超文本传输协议(HTTP)是用于客户端-服务器通信的协议或一组通信规则。当访问网站时,浏览器会向 Web 服务器发送 HTTP 请求,该服务器将以 HTTP 响应进行响应。Web 服务器将以纯文本形式与浏览器交换数据。简而言之,HTTP 协议是为网络通信提供支持的底层技术

    2024年02月22日
    浏览(41)
  • pycharm是什么?各版本之间有何区别?

    pycharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制,是Python开发中非常常见的工具之一。pycharm分为社区版、教育版和专业版,其中社区版和专业版

    2024年02月06日
    浏览(50)
  • App测试中ios和Android的区别

    1、Android长按home键呼出应用列表和切换应用,然后右滑则终止应用; 2、多分辨率测试,Android端20多种,ios较少; 3、手机操作系统,Android较多,ios较少且不能降级,只能单向升级;新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用

    2024年02月16日
    浏览(67)
  • String、StringBuilder和StringBuffer之间的区别是什么?

    String 、 StringBuilder 和 StringBuffer 在Java中都用于处理文本数据,但它们之间存在一些关键区别,主要体现在可变性、线程安全性和性能上。 String 不可变性 : String 类的对象是不可变的。这意味着一旦 String 对象被创建,它所包含的字符序列就不能被改变。每次对字符串进行修

    2024年02月21日
    浏览(47)
  • Microsoft365和普通Office之间有什么区别 如何选择?

    微软以不断改造其产品而闻名:这也适用于其举世闻名的 Office:随着 Microsoft 365 的推出,流行的办公软件现在以订阅模式提供。 尽管许多用户和企业不确定 Microsoft 365 和 Office 之间的区别是什么,但这个新版本具有许多优势。 大眼仔旭对 Microsoft 365 和 Office 的全面比较旨在改

    2024年02月03日
    浏览(69)
  • HTTP 协议和 TCP/IP 协议之间有什么区别?

    HTTP(超文本传输协议)和TCP/IP(传输控制协议/互联网协议)是两种在互联网通信中广泛使用的协议,它们之间的区别和联系对许多人来说可能还不是很清晰,今天我们就带大家来一起了解一下HTTP和TCP/IP协议这2者之间的主要区别和功能。 我们来看看HTTP协议。HTTP是一种应用层

    2024年01月20日
    浏览(52)
  • Sass、Less和Stylus之间有什么主要的区别?

    Sass、Less和Stylus是三种常见的CSS预处理器,它们在功能和语法上有一些区别。以下是它们之间的主要区别: 1:语法差异: Sass使用缩进的语法,使用类似于Python的缩进来表示嵌套规则和块级作用域。 Less和Stylus使用类似CSS的语法,使用大括号和分号来表示规则和声明。 2:变量

    2024年02月07日
    浏览(49)
  • 专科程序员与本科程序员之间有什么区别?

    专科程序员和本科程序员之间最主要的区别在于他们的学历水平以及所接受的教育和培训的深度和广度不同。 本科程序员通常拥有更为全面的计算机技术理论知识,同时也接受了更加系统和广泛的相关课程和实践,比如算法、计算机网络、操作系统、软件工程等等。他们研究

    2024年02月06日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包