c++ ifstream ofstream 文件流
2013-11-12 11:11 youxin 阅读(1349) 评论(0) 编辑 收藏 举报
#include <fstream>
ofstream //文件写操作 内存写入存储设备
ifstream //文件读操作,存储设备读区到内存中
fstream //读写操作,对打开的文件可进行读写操作
打开文件:
- void open ( const char * filename,
- ios_base::openmode mode = ios_base::in | ios_base::out );
或ifstream if("data.txt"); 默认构造函数和open原型一样。
本文件的读写
类ofstream, ifstream 和fstream 是分别从ostream, istream 和iostream 中引申而来的。这就是为什么 fstream 的对象可以使用其父类的成员来访问数据。
一般来说,我们将使用这些类与同控制台(console)交互同样的成员函数(cin 和 cout)来进行输入输出。如下面的例题所示,我们使用重载的插入操作符<<:
判断文件是否结尾
if.eof() 为true即结尾。
读取文件并输出:
// reading a text file #include <iostream.h> #include <fstream.h> #include <stdlib.h> int main () { char buffer[256]; ifstream in("test.txt"); if (! in.is_open()) { cout << "Error opening file"; exit (1); } while (!in.eof() ) { in.getline (buffer,100); cout << buffer << endl; } return 0; } //结果 在屏幕上输出 This is a line. This is another line
读写数据块
要读写二进制数据块,使用成员函数read()和write()成员函数,它们原型如下:
要读写二进制数据块,使用成员函数read()和write()成员函数,它们原型如下:
![](http://blog.51cto.com/images/editer/InBlock.gif)
![](http://blog.51cto.com/images/editer/InBlock.gif)
例:
![](http://blog.51cto.com/images/editer/InBlock.gif)
![](http://blog.51cto.com/images/editer/InBlock.gif)
![](http://blog.51cto.com/images/editer/InBlock.gif)
![](http://blog.51cto.com/images/editer/InBlock.gif)
![](http://blog.51cto.com/images/editer/InBlock.gif)
![](http://blog.51cto.com/images/editer/InBlock.gif)
![](http://blog.51cto.com/images/editer/InBlock.gif)
copy一个文件:
#include<iostream> #include<fstream> using namespace std; int main() { ifstream fin("input.txt"); ofstream fout("input2.txt"); char buf[1024]; while(!fin.eof()) { fin.read(buf,1024); fout.write(buf,fin.gcount()); } fin.close(); fout.close(); }
参考:
http://blog.csdn.net/kingstar158/article/details/6859379
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步