使用C++讀寫檔案

來源:互聯網
上載者:User

使用(C++庫)fstream讀寫檔案

原創+收藏

//awzzz@2002//入門計劃->使用(C++庫)fstream讀寫檔案//APO->using fstream.//accidence project of using fstream.(c++ iostream library)/*  Reference: http://www.cplusplus.com/ref/iostream/fstream/  Description  fstream class provides a stream interface to read and write data from/to files.  The class mantains internally (privately) a pointer to a filebuf object in charge  of the interaction with the file. This pointer can be obtained/modified by calling  member rdbuf.  The file to be processed can be specified as a parameter for the constructor or by  calling member open.  After a file is processed it can be closed by calling member close. In this case  the file stream may be used to open another file.  Member is_open can be used to determine wether the stream is currently operating  on a file or not.  Please refer to parent classes for more details on information mantained by an  fstream object. *///使用(C++庫)fstream讀寫檔案//simple example#include <iostream>#include <fstream>using namespace std;#ifdef WIN32#define TEST_FILE   "c://tmp//test.txt"#else#define TEST_FILE   "/tmp/test.txt"#endifvoid test(){    {        //fstream sfs;        //sfs.open(TEST_FILE, ios_base::out);        fstream sfs(TEST_FILE, ios_base::out);                char buf[] = "1234567890";        sfs.write(buf, sizeof(buf));        sfs.close();    }    {        int len;        char* buf;        //fstream sfs;        //sfs.open(TEST_FILE);        fstream sfs(TEST_FILE);                sfs.seekg (0, ios::end);        len = sfs.tellg();        sfs.seekg (0, ios::beg);        buf = new char[len];        sfs.read(buf, len);        cout << buf << endl;        delete []buf;        sfs.close();    }}int main(int argc, char* argv[]){       test();    return 0;}

 

Add by : DevEduSiteMaster (2005-4-19:01:26)  </div>
<div id=">================================================</div>
<div id=">

c++檔案讀寫對象,二進位方式和文本方式對比
gaobaolu 發表於 2007-5-21 12:17:00

c++檔案讀寫對象,二進位方式和文本方式對比

//baolu_gao@163.com
//測試檔案讀寫的二進位形式和文本形式的區別
//該例兩種情況結果沒有區別,只是文本方式下把10轉化成13,10,即16進位0A變為0D OA
#i nclude <fstream>
#i nclude <iostream>

using namespace std;
class Dog
{
      private:
         int weight;
         int age;
      public:
         Dog(int x=0,int y=0)
         {
            weight = x;
            age = y;    
         } 
         void displayDetails()
         {
              cout << weight << "," << age <<endl;
         } 
                 
};

int main()
{
    Dog dog1(5,10);
   
   //ofstream fout("dogs.dat");
    ofstream fout("dogs.dat",ios_base::binary);
    fout.write((char *) &dog1,sizeof(dog1));
    fout.close();
   
    Dog dog2;
   //ifstream fin("dogs.dat");
    ifstream fin("dogs.dat",ios_base::binary);
    fin.read((char *) &dog2,sizeof dog2);
    dog2.displayDetails();   
    fin.close();
   
    system("pause");
    return 0;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.