乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      C++文件

       just_person 2009-09-24
      要求:
      掌握文本文件讀寫的方法
      了解二進制文件的讀寫方法

      C++文件流:
      fstream  // 文件流
      ifstream  // 輸入文件流
      ofstream  // 輸出文件流

      //創(chuàng)建一個文本文件并寫入信息
      //同向屏幕上輸出信息一樣將信息輸出至文件

      #include<iomanip.h>
      #include<fstream.h>
      void main()
      {
        ofstream f1("d:\\me.txt");           //打開文件用于寫,若文件不存在就創(chuàng)建它
        if(!f1)return;                 //打開文件失敗則結束運行
        f1<<setw(20)<<"姓名:"<<"廉東方"<<endl;     //使用插入運算符寫文件內容
        f1<<setw(20)<<"家庭地址:"<<"河南鄭州"<<endl;
        f1.close();                   //關閉文件
      }
      運行后打開文件d:\me.txt,其內容如下:
             姓名:廉東方
           家庭地址:河南鄭州

      文件操作:
      打開文件
        文件名
          注意路徑名中的斜杠要雙寫,如:
          "D:\\MyFiles\\ReadMe.txt"
        文件打開方式選項:
          ios::in    = 0x01, //供讀,文件不存在則創(chuàng)建(ifstream默認的打開方式)
          ios::out    = 0x02, //供寫,文件不存在則創(chuàng)建,若文件已存在則清空原內容(ofstream默認的打開方式)
          ios::ate    = 0x04, //文件打開時,指針在文件最后。可改變指針的位置,常和in、out聯(lián)合使用
          ios::app    = 0x08, //供寫,文件不存在則創(chuàng)建,若文件已存在則在原文件內容后寫入新的內容,指針位置總在最后
          ios::trunc   = 0x10, //在讀寫前先將文件長度截斷為0(默認)
          ios::nocreate = 0x20, //文件不存在時產生錯誤,常和in或app聯(lián)合使用
          ios::noreplace = 0x40, //文件存在時產生錯誤,常和out聯(lián)合使用
          ios::binary  = 0x80  //二進制格式文件
        文件保護方式選擇項:
          filebuf::openprot;   //默認的兼容共享方式
          filebuf::sh_none;    //獨占,不共享
          filebuf::sh_read;    //讀共享
          filebuf::sh_write;   //寫共享
        打開文件的方法
          調用構造函數(shù)時指定文件名和打開模式
          ifstream f("d:\\12.txt",ios::nocreate);         //默認以 ios::in 的方式打開文件,文件不存在時操作失敗
          ofstream f("d:\\12.txt");                //默認以 ios::out的方式打開文件
          fstream f("d:\\12.dat",ios::in|ios::out|ios::binary); //以讀寫方式打開二進制文件
          使用Open成員函數(shù)
          fstream f;
          f.open("d:\\12.txt",ios::out);             //利用同一對象對多個文件進行操作時要用到open函數(shù)
      檢查是否成功打開
        成功:
          if(f){...}       //對ifstream、ofstream對象可用,fstream對象不可用。
          if(f.good()){...}
        失?。?/font>
          if(!f){...}       // !運算符已經(jīng)重載
          if(f.fail()){...}
      讀寫操作
        使用<<,>>運算符
        只能進行文本文件的讀寫操作,用于二進制文件可能會產生錯誤。
        使用函數(shù)成員 get、put、read、write等
        經(jīng)常和read配合使用的函數(shù)是gcount(),用來獲得實際讀取的字節(jié)數(shù)。
      讀寫二進制文件注意事項
        打開方式中必須指定ios::binary,否則讀寫會出錯
        用read\write進行讀寫操作,而不能使用插入、提取運算符進行操作,否則會出錯。
        使用eof()函數(shù)檢測文件是否讀結束,使用gcount()獲得實際讀取的字節(jié)數(shù)
      關閉文件
        使用成員函數(shù)close,如:
        f.close(); 
        利用析構函數(shù)
        對象生命期結束時會檢查文件是否關閉,對沒有關閉的文件進行關閉操作。
      隨機讀寫文件
        通過移動文件讀寫指針,可在文件指定位置進行讀寫。
        seekg(絕對位置);      //絕對移動,    //輸入流操作
        seekg(相對位置,參照位置);  //相對操作
        tellg();          //返回當前指針位置
        seekp(絕對位置);      //絕對移動,    //輸出流操作
        seekp(相對位置,參照位置);  //相對操作   
        tellp();          //返回當前指針位置
        參照位置:
        ios::beg  = 0       //相對于文件頭
        ios::cur  = 1       //相對于當前位置
        ios::end  = 2       //相對于文件尾
      讀寫文本文件的示例
      //為能夠正確讀出寫入文件的各數(shù)據(jù),各數(shù)據(jù)間最好要有分隔
      #include<fstream.h>
      void main()
      {
        fstream f("d:\\try.txt",ios::out);
        f<<1234<<' '<<3.14<<'A'<<"How are you"; //寫入數(shù)據(jù)
        f.close();
        f.open("d:\\try.txt",ios::in);
        int i;
        double d;
        char c;
        char s[20];
        f>>i>>d>>c;               //讀取數(shù)據(jù)
        f.getline(s,20);
        cout<<i<<endl;             //顯示各數(shù)據(jù)
        cout<<d<<endl;
        cout<<c<<endl;
        cout<<s<<endl;
        f.close();
      }
      運行結果:
      1234
      3.14
      A
      How are you
      Press any key to continue
      顯示文本文件的內容
      //使用get()一次讀一個字符--------------------------------方案一
      #include<fstream.h>
      void main()
      {
        ifstream fin("d:\\簡介.txt",ios::nocreate);
        if(!fin){
          cout<<"File open error!\n";
          return;
        }
        char c;
        while((c=fin.get())!=EOF)cout<<c;    //注意結束條件的判斷
        fin.close();
      }
      //使用get(char *,int n,char delim='\n')一次讀多個字符----方案二
      //巧妙利用文本文件中不會有字符'\0'的特點進行讀取

      #include<fstream.h>
      void main()
      {
        ifstream fin("d:\\簡介.txt",ios::nocreate);
        if(!fin){
          cout<<"File open error!\n";
          return;
        }
        char c[80];
        while(fin.get(c,80,'\0')!=NULL)cout<<c; //注意結束條件的判斷
        fin.close();
      }
      //使用read(char *,int n)讀文件---------------------------方案三
      #include<fstream.h>
      void main()
      {
        ifstream fin("d:\\簡介.txt",ios::nocreate);
        if(!fin){
          cout<<"File open error!\n";
          return;
        }
        char c[80];
        while(!fin.eof())            //判斷文件是否讀結束
        {
          fin.read(c,80);
          cout.write(c,fin.gcount());
        }
        fin.close();
      }
      拷貝文件
      //二進制文件操作示例

      #include<fstream.h>
      void main()
      {
        ifstream fin("C:\\1.exe",ios::nocreate|ios::binary);
        if(!fin){
          cout<<"File open error!\n";
          return;
        }
        ofstream fout("C:\\2.exe",ios::binary);
        char c[1024];
        while(!fin.eof())
        {
          fin.read(c,1024);
          fout.write(c,fin.gcount());
        }
        fin.close();
        fout.close();
        cout<<"Copy over!\n";
      }

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多