ios_base::out和ios::out、ios_base::in和ios::in、ios_base::app和ios::ap ...

打印 上一主题 下一主题

主题 851|帖子 851|积分 2553

2023年8月2日,周三晚上
本日我看到了如许的两行代码:
  1. std::ofstream file("example.txt", std::ios_base::out);
  2. std::ofstream file("example.txt", std::ios::out);
复制代码
这让我产生了几个疑问:
为什么偶然间用ios_base:ut,偶然间用ios:ut?
ios_base:ut和ios:ut之间有区别吗?
我花了一两个小时才搞清晰....

目次


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


结论

ios_base:ut和ios:ut之间没有区别,它们是千篇一律的。
由于它们都是整形常量,而且数值一样,完全可以互相代替。
至于什么时间用哪个,我以为喜欢用哪个就用哪个,由于它们确实是一样的。

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



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

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



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

证明它们是一样的

  1. #include<iostream>
  2. #include<fstream>
  3. int main(){
  4.         printf("ios_base::in的值:%d\n",std::ios_base::in);
  5.         printf("ios::in的值:%d\n",std::ios::in);
  6.         printf("-------------\n");
  7.        
  8.         printf("ios_base::out的值:%d\n",std::ios_base::out);
  9.         printf("ios::out的值:%d\n",std::ios::out);
  10.         printf("-------------\n");
  11.        
  12.         printf("ios_base::app的值:%d\n",std::ios_base::app);
  13.         printf("ios::app的值:%d\n",std::ios::app);
  14.         printf("-------------\n");
  15.        
  16.         printf("ios_base::trunc的值:%d\n",std::ios_base::trunc);
  17.         printf("ios::trunc的值:%d\n",std::ios::trunc);
  18.         printf("-------------\n");
  19.        
  20.         printf("ios_base::binary的值:%d\n",std::ios_base::binary);
  21.         printf("ios::binary的值:%d\n",std::ios::binary);
  22.         printf("-------------\n");
  23.        
  24.         printf("ios_base::ate的值:%d\n",std::ios_base::ate);
  25.         printf("ios::ate的值:%d\n",std::ios::ate);
  26.         printf("-------------\n");
  27.        
  28.        
  29. }
复制代码

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

西河刘卡车医

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表