C++文件读写操做

C++文件流

fstream  // 文件流
ifstream  // 输入文件流
ofstream  // 输出文件流

文件打开方式选项:

ios::in        //供读,文件不存在则建立(ifstream默认的打开方式)
ios::out       //供写,文件不存在则建立,若文件已存在则清空原内容(ofstream默认的打开方式)
ios::ate       //文件打开时,指针在文件最后。可改变指针的位置,常和in、out联合使用
ios::app       //供写,文件不存在则建立,若文件已存在则在原文件内容后写入新的内容,指针位置总在最后
ios::trunc     //在读写前先将文件长度截断为0(默认)
ios::nocreate //文件不存在时产生错误,常和in或app联合使用
ios::noreplace //文件存在时产生错误,常和out联合使用

ios::binary   //二进制格式文件
文件保护方式选择项:
filebuf::openprot;     //默认的兼容共享方式
filebuf::sh_none;    //独占,不共享
filebuf::sh_read;    //读共享
filebuf::sh_write;   //写共享

打开文件的方法
调用构造函数时指定文件名和打开模式
fstream f("d:\\12.dat",ios::in|ios::out|ios::binary); //以读写方式打开二进制文件
使用Open成员函数
fstream f;
f.open("d:\\12.txt",ios::out); //利用同一对象对多个文件进行操做时要用到open函数
检查是否成功打开
成功:
    if(f){...}   //对ifstream、ofstream对象可用,fstream对象不可用。
    if(f.good()){...}
失败:
    if(!f){...}   // !运算符已经重载
    if(f.fail()){...}

文件定位

经过移动文件读写指针,可在文件指定位置进行读写。
  seekg(绝对位置);      //绝对移动,输入流操做
  seekg(相对位置,参照位置);  //相对操做
  tellg();          //返回当前指针位置
  seekp(绝对位置);      //绝对移动,输出流操做
  seekp(相对位置,参照位置);  //相对操做   
  tellp();          //返回当前指针位置
  参照位置:
  ios::beg  = 0       //相对于文件头
  ios::cur  = 1       //相对于当前位置
  ios::end  = 2       //相对于文件尾

显示文件内容

文件拷贝


continued……java

相关文章
相关标签/搜索