Option 1 Write a program that will 1 read an array of record

Option 1: Write a program that will: 1) read an array of records from the keyboard, 2) store this information to a binary file, 3) read from the binary file back to the array of records, 4) store this information to a textfile. Left justify the information for each field. Each record will consist of the following fields:

first name 15 characters last name 15 characters street address 30 characters city 20 characters state 5 characters zip long integer

You may assume a maximum of 20 records.
This assignment is very similar to the program found in Lab 12.3.

Sample Run:

Enter the following information Person

Solution

This is working now :



#include <fstream>


#include <iostream>


#include <cctype> // for toupper function


using namespace std;


struct Peopleinfo//__attribute__((packed)) Peopleinfo // declaring a structure


{


char fname[15];


char lname[15];


char staddr[30];


char city[20];


char state[5];


long int zipcode;


};


int main()


{


fstream infofile (\"infofile.dat\", ios::out | ios::binary);


// defines infofile as an output binary file


Peopleinfo people_rec ; // defines student as a record (struct)


Peopleinfo opeople_rec;


char input; // used to determine if there is more input


do


{


cout << \"Enter the following information\" << endl;


cout << \"First Name: \";


cin.getline(people_rec.fname,15);


cout << \"Last Name: \";


cin.getline(people_rec.lname,15);


cout << \"Street Address: \";


cin.getline(people_rec. staddr,30);


cout << \"City: \";


cin.getline(people_rec.city,20);


cout << \"State: \";


cin.getline(people_rec.city,5);


cout << \"Zip Code :\";


cin >> people_rec.zipcode;


cin.ignore(); // ignore rest of line


// write this record to the file


infofile.write((char *) &people_rec, sizeof(people_rec));


cout << \"Enter a Y if you would like to input more data\ \";


cin >> input;


cin.ignore();


} while (toupper(input) == \'Y\');


infofile.close();


ofstream outfile;


outfile.open (\"outputfile.txt\");


fstream file (\"infofile.dat\", ios::in| ios::out|ios::binary);



file.read(opeople_rec.fname, sizeof(opeople_rec.fname));

file.read(opeople_rec.lname, sizeof(opeople_rec.lname));

file.read(opeople_rec.staddr, sizeof(opeople_rec.staddr));

file.read(opeople_rec.city, sizeof(opeople_rec.city));

file.read(opeople_rec.state, sizeof(opeople_rec.state));

file.read(reinterpret_cast<char *>(&opeople_rec.zipcode), sizeof(opeople_rec.zipcode));



if(file.is_open())


{


while (!file.eof()) {


cout << \"Reading from Binary File\";

file.read(opeople_rec.fname, sizeof(opeople_rec.fname));

file.read(opeople_rec.lname, sizeof(opeople_rec.lname));

file.read(opeople_rec.staddr, sizeof(opeople_rec.staddr));

file.read(opeople_rec.city, sizeof(opeople_rec.city));

file.read(opeople_rec.state, sizeof(opeople_rec.state));

file.read(reinterpret_cast<char *>(&opeople_rec.zipcode), sizeof(opeople_rec.zipcode));


outfile<< opeople_rec.fname;


outfile<<opeople_rec.lname;


outfile<<opeople_rec.staddr;


outfile<<opeople_rec.city;


outfile<<opeople_rec.state;


outfile<<opeople_rec.zipcode;

outfile<<\"\ \";


}


file.close();


}


else cout << \"Unable to open file\";


cout<<\"Completed Writing into Text File\";




return 0;

}


Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site