Mega Code Archive

 
Categories / C++ Tutorial / File Stream
 

Save class to a file

#include <iostream> using std::cerr; using std::cin; using std::cout; using std::endl; using std::ios; #include <iomanip> using std::setw; #include <fstream> using std::fstream; #include <cstdlib> using std::exit; // exit function prototype #include <string> using std::string; class Account { public:     Account( int accountNumberValue, string lastNameValue, string firstNameValue, double balanceValue )     {        setAccountNumber( accountNumberValue );        setLastName( lastNameValue );        setFirstName( firstNameValue );        setBalance( balanceValue );     }     int getAccountNumber() const     {        return accountNumber;     }     void setAccountNumber( int accountNumberValue )     {        accountNumber = accountNumberValue; // should validate     }     string getLastName() const     {        return lastName;     }     void setLastName( string lastNameString )     {        const char *lastNameValue = lastNameString.data();        strncpy( lastName, lastNameValue, 5 );        lastName[ 5 ] = '\0';     }     string getFirstName() const     {        return firstName;     }     void setFirstName( string firstNameString )     {        const char *firstNameValue = firstNameString.data();        strncpy( firstName, firstNameValue, 5 );        firstName[ 5 ] = '\0';     }     double getBalance() const     {        return balance;     }     void setBalance( double balanceValue )     {        balance = balanceValue;     } private:    int accountNumber;    char lastName[ 15 ];    char firstName[ 10 ];    double balance; }; int main() {    fstream outCredit( "credit.dat", ios::in | ios::out | ios::binary );    // exit program if fstream cannot open file    if ( !outCredit )    {       cerr << "File could not be opened." << endl;       exit( 1 );    } // end if    Account client(1,"AAAAA","BBBBB",1.2);    // seek position in file of user-specified record    outCredit.seekp( ( client.getAccountNumber() - 1 ) * sizeof( Account ) );    // write user-specified information in file    outCredit.write( reinterpret_cast< const char * >( &client ),sizeof( Account ) );    return 0; }