Mega Code Archive

 
Categories / C++ Tutorial / Pointer
 

C++ program shows the use of pointers when accessing structure information from a function

#include <iostream> #define iSTRING15 15 #define iSTRING20 20 #define iNULL_CHAR 1 #define iMAX_BOATS 50 using namespace std;    int iinstock; struct stboat {  char sztype [iSTRING15 + iNULL_CHAR];  char szmodel[iSTRING15 + iNULL_CHAR];  char sztitle[iSTRING20 + iNULL_CHAR];  char szcomment[80];  int iyear;  long int lmotor_hours;  float fretail;  float fwholesale; }; void vprint_data(stboat *stany_boatptr); int main(void) {  int i;  char newline;  stboat astNineveh[iMAX_BOATS],*pastNineveh;  pastNineveh=&astNineveh[0];     cout << "How many boats in inventory? ";  cin >> iinstock;  for (i=0; i<iinstock; i++) {    cout << "\nPlease enter the make of the boat: ";    cin >> pastNineveh->sztype;    cout << "\nPlease enter the model of the boat: ";    cin >> pastNineveh->szmodel;    cout << "\nPlease enter the title number for the boat: ";    cin >> pastNineveh->sztitle;    cout << "\nPlease enter the model year for the boat: ";    cin >> pastNineveh->iyear;    cout << "\nPlease enter the current hours on "         << "the motor for the boat: ";    cin >> pastNineveh->lmotor_hours;         cout << "\nPlease enter the retail price of the boat: ";    cin >> pastNineveh->fretail;    cout << "\nPlease enter the wholesale price of the boat: ";    cin >> pastNineveh->fwholesale;    cout << "\nPlease enter a one line comment about the boat: ";    cin.get(newline);   // process carriage return    cin.get(pastNineveh->szcomment,80,'.');    cin.get(newline);   // process carriage return    pastNineveh++;  }  pastNineveh=&astNineveh[0];  vprint_data(pastNineveh);  return (0); } void vprint_data(stboat *stany_boatptr) {  int i;  for (i=0; i<iinstock; i++) {    cout << "A " << stany_boatptr->iyear << " "         << stany_boatptr->sztype << " "         << stany_boatptr->szmodel << " beauty with "         << stany_boatptr->lmotor_hours << " low hours.\n";    cout << stany_boatptr->szcomment << endl;    cout << "Grab the deal by asking your Nineveh "         << "salesperson for #";    cout << stany_boatptr->sztitle << "ONLY! $"         << stany_boatptr->fretail << "\n\n";    stany_boatptr++;  } }