// Using an instance count to manage file input/output // Copyright 1998 Brian J. Reithel, Ph.D. #include #include #include class magazinesub { char name[151]; char address[151]; char city[151]; char state[3]; int zip; public: void info_in(void); void blankout(void); char* getname(void); char* getaddress(void); char* getcity(void); char* getstate(void); int getzip(void); }; void magazinesub::blankout(){ strcpy(name," "); strcpy(address," "); strcpy(city," "); strcpy(state," "); zip=0; } char* magazinesub::getname(){ return(name); } char* magazinesub::getaddress(){ return(address); } char* magazinesub::getcity(){ return(city); } char* magazinesub::getstate(){ return(state); } int magazinesub::getzip(){ return(zip); } void magazinesub::info_in(){ char nl; cout << "Enter the customer's name: "; cin.get(name,150,'\n'); cin.get(nl); cout << "Enter the customer's address: "; cin.get(address,150,'\n'); cin.get(nl); cout << "Enter the customer's city: "; cin.get(city,150,'\n'); cin.get(nl); cout << "Enter the customer's state: "; cin.get(state,2,'\n'); cin.get(nl); cout << "Enter the customer's zip code: "; cin >> zip; cin.get(nl); } int main() { magazinesub subs[100]; int s,i for(i=0;i<100;i++) subs[i].blankout(); char another='y'; char nl; s=0; while(another=='y'){ subs[s].info_in(); s=s+1; cout << "Do you want to enter another subscription? (y/n): "; cin >> another; cin.get(nl); } // var s has the number of entries fstream outfile; outfile.open("subs.dat",ios::out); outfile << s << endl; for(i=0;i