ios_base::out和ios::out、ios_base::in和ios::in、ios_base::app和ios::ap
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");
} https://i-blog.csdnimg.cn/blog_migrate/ed3c50fd1166d041d0e7b3ef03c52df0.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]