fstream、ifstream、ofsream使用的一点总结_erxa sream

写程序时,有一段代码使用了fstream来创建、读写隐藏文件,但是却发现了一些奇怪的问题:该创建时不创建,存在时却无法读取、修改,下面对这三类对象做了测试和总结,记录如下:1 测试文件不存在时创建文件
=========================================================fstream fs("aaa.txt",ios_base::in)不创建
fstream fs("aaa.txt",ios_base::out)创建
fstream fs("aaa.txt",ios_base::trunc)不创建
fstream fs("aaa.txt"); //等同于下行
fstream fs("aaa.txt", ios_base::in |ios_base::out)不创建
fstream fs("aaa.txt", ios_base::in |ios_base::trunc); 不创建
fstream fs("aaa.txt", ios_base::out |ios_base::trunc); 创建
fstream fs("aaa.txt", ios_base::in | ios_base::out |ios_base::trunc); 创建以上总结:
fstream 在文件不存在时创建
要么单独使用ios_base::out
要么同时使用ios_base::out | ios_base::trunc
=========================================================ofstream与fstream并没有太大不同,
只是在你打开时,不管有没加ios_base::out,反正都会或一次(“_Mode | ios_base::out”)由前文结论可推断,以下三种情况会创建文件,其余都不创建:ofstream ofs("aaa.txt")
ofstream ofs("aaa.txt", ios_base::trunc)
ofstream ofs("aaa.txt", ios_base::in | ios_base::trunc)2 测试读取隐藏文件=========================================================fstream fs("aaa.txt",ios_base::in)能
fstream fs("aaa.txt",ios_base::out)不能
fstream fs("aaa.txt",ios_base::trunc)不能
fstream fs("aaa.txt"); //等同于下行
fstream fs("aaa.txt", ios_base::in |ios_base::out)能
fstream fs("aaa.txt", ios_base::in |ios_base::trunc); 不能
fstream fs("aaa.txt", ios_base::out |ios_base::trunc); 不能
fstream fs("aaa.txt", ios_base::in | ios_base::out |ios_base::trunc); 不能以上总结:
fstream打开隐藏文件
要么单独使用ios_base::in
要么不能有ios_base::trunc
=========================================================
ifstream与fstream也没有太大不同,
只是在你打开时,不管有没加ios_base::in,反正都会或一次(“_Mode | ios_base::in”)由前文结论可推断,以下两种情况能打开文件,其余都不能:
ifstream ifs("aaa.txt")
ifstream ofs("aaa.txt", ios_base::ou t)3 测试读取普通文件=========================================================fstream fs("aaa.txt",ios_base::in)能
fstream fs("aaa.txt",ios_base::out)能
fstream fs("aaa.txt",ios_base::trunc)不能
fstream fs("aaa.txt"); //等同于下行
fstream fs("aaa.txt", ios_base::in |ios_base::out)能
fstream fs("aaa.txt", ios_base::in |ios_base::trunc); 不能
fstream fs("aaa.txt", ios_base::out |ios_base::trunc); 能
fstream fs("aaa.txt", ios_base::in | ios_base::out |ios_base::trunc); 能以上总结:
fstream打开普通文件
用ios_base::trunc时必须同时有ios_base::out
=========================================================
ifstream与fstream也没有太大不同,
只是在你打开时,不管有没加ios_base::in,反正都会或一次(“_Mode | ios_base::in”)由前文结论可推断,以下一种情况不能打开文件,其余都能:
ifstream ofs("aaa.txt", ios_base::trunc)

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/274369.html

更多阅读

怎么关闭、开启windows的自动更新 win10开启windows更新

怎么关闭、开启windows的自动更新——简介关闭windows的更新有助于节省我们的硬盘空间,然后使用其它的安全软件来进行更新和修复是一样的功能!而且可以很好的清除更新的补丁文件,以腾出硬盘空间!不过在没

声明:《fstream、ifstream、ofsream使用的一点总结_erxa sream》为网友彩色的黑分享!如侵犯到您的合法权益请联系我们删除