fstream、ifstream、ofsream使用的一点总结
来源:互联网 发布:vb精简版 编辑:程序博客网 时间:2024/06/06 03:13
写程序时,有一段代码使用了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 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
=========================================================
fstream 在文件不存在时创建
要么单独使用ios_base::out
要么同时使用ios_base::out | ios_base::trunc
=========================================================
ofstream与fstream并没有太大不同,
只是在你打开时,不管有没加ios_base::out,反正都会或一次(“_Mode | ios_base::out”)
只是在你打开时,不管有没加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)
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 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”)
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::out)
ifstream ifs("aaa.txt")
ifstream ofs("aaa.txt", ios_base::out)
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 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”)
fstream打开普通文件
用ios_base::trunc时必须同时有ios_base::out
=========================================================
ifstream与fstream也没有太大不同,
只是在你打开时,不管有没加ios_base::in,反正都会或一次(“_Mode | ios_base::in”)
由前文结论可推断,以下一种情况不能打开文件,其余都能:
ifstream ofs("aaa.txt", ios_base::trunc)
ifstream ofs("aaa.txt", ios_base::trunc)
- fstream、ifstream、ofsream使用的一点总结
- fstream ifstream ofstream的使用
- 使用fstream,ifstream,ofstream读写文件的一种情形
- fstream 一点总结
- fstream(ifstream和ofstream)使用详解
- fstream的一点用法
- fstream ,ifstream,ofstream的用法详解
- Z02 fstream中ifstream的简单用法
- C++中的“流”和fstream类的一点总结
- fstream和ofstream使用上的一点区别
- C++中fstream头文件使用的一点小问题
- C++中fstream头文件使用的一点小问题
- fstream ifstream ofstream
- c++ fstream, ifstream, ostream
- c++中ifstream,ofstream和fstream的使用方法
- fstream的用法总结
- ifstream、ofstream的使用
- ifstream的使用问题
- Android EditText属性总结
- 横屏和竖屏切换不用销毁重新建立android:configChanges
- 2008-SQL server: T-sql总结
- c语言中的线程池
- ASCII Table
- fstream、ifstream、ofsream使用的一点总结
- sql 1
- Linux下查看apache连接数
- omnet++出现找不到libinet.dll模块
- Apache连接数设置
- 安装iis后出现windows文件保护怎么办?
- 关于iframe ajax 跨越的简单列子
- 链式存储池
- 难倒犹太人的11个数学问题