ios_base::out和ios::out、ios_base::in和ios::in、ios_base::app和ios::app等之间有什么区别吗?
短信预约 -IT技能 免费直播动态提醒
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::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#includeint 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");}
来源地址:https://blog.csdn.net/m0_61629312/article/details/132073083
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341