Passing structure to functions and a function returning a structure data type
Compiler: Visual C++ Express Edition 2005
Compiled on Platform: Windows 2003 Server Standard Edition
Header file: Standard
Additional project setting: Set project to be compiled as C++
Project -> your_project_name Properties -> Configuration Properties -> C/C++ -> Advanced -> Compiled As: Compiled as C++ Code (/TP)
Other info: none
To do: Reading and writing some data of the struct data types in C++ program example
To show: Passing struct to functions and a function returning a struct data type C++ program example
// Passing structures to functions and a function returning a structure
#include <iostream>
using namespace std;
// struct data type
struct vegetable
{
char name[30];
float price;
};
// the main program
int main(void)
{
// declare 2 structure variables
struct vegetable veg1, veg2;
// function prototype of type struct
struct vegetable addname();
// another function prototype
int list_func(vegetable);
// functions call for user input
veg1 = addname();
veg2 = addname();
cout<<"\nVegetables for sale\n";
// function call for data display...
list_func(veg1);
list_func(veg2);
cout<<endl;
return 0;
}
// function definitions
// This functions returns a structure
struct vegetable addname()
{
// normal variable
char tmp[20];
// declare a structure variable
struct vegetable vege;
// Get the size of the struct
printf("The struct vegetable size is: %d\n", sizeof(struct vegetable));
cout<<"\nEnter name of vegetable: ";
// gets(vege.name);
gets_s(vege.name, 36);
cout<<"Enter price (per 100gm): $ ";
// gets(tmp);
gets_s(tmp, 20);
// converts a string to float
vege.price = atof(tmp);
return (vege);
}
// structure passed from main() to function
int list_func(vegetable list)
{
cout<<"\nVegetable name: "<<list.name;
cout<<"\nVegetable price: $"<<list.price;
return 0;
}
Output example:
The struct vegetable size is: 36
Enter name of vegetable: spinach
Enter price (per 100gm): $ 1.02
The struct vegetable size is: 36
Enter name of vegetable: potatoes
Enter price (per 100gm): $ 2.03
Vegetables for sale
Vegetable name: spinach
Vegetable price: $1.02
Vegetable name: potatoes
Vegetable price: $2.03
Press any key to continue . . .