so I'm starting off with c and c++ and I am at structures, I've made a strcture for employees, defined the number of employees and made 2 functions: 1 to fill employees info and 1 to print them:
#include <iostream>
#include <cstdio>
#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define NO 3
using namespace std;
struct employee {
char fName[15];
char lName[15];
unsigned int age;
char gender;
bool married;
char Pp[5];
};
typedef struct employee Employee;
void fillEmployeeDetails(Employee * const employeePtr);
void printEmployeeDetails(const Employee * const employeePtr);
int main(){
Employee Employees[NO];
fillEmployeeDetails(Employees);
printEmployeeDetails(Employees);
//printf("%s",&(Employees[0].Pp));
return 0;
}
void fillEmployeeDetails(Employee * const employeePtr){
char marriageStatus;
int i;
for(i = 0; i < NO + 1; ++i){
marriageStatus = '\0';
system("CLS");
printf("No. of employees: %d\n\n", NO);
printf("Employee No. %d:\n\n", i+1);
printf("First name: ");
scanf("%14s", employeePtr[i].fName);
printf("Last name: ");
scanf("%14s", employeePtr[i].lName);
printf("Age: ");
scanf("%u", &(employeePtr[i].age));
while(employeePtr[i].age > 150 || employeePtr[i].age < 0){
printf("Age: ");
scanf("%u", &(employeePtr[i].age));
}
while(employeePtr[i].gender != 'M' && employeePtr[i].gender != 'F' ){
printf("Gender: ");
scanf("%s", &(employeePtr[i].gender));
employeePtr[i].gender = toupper(employeePtr[i].gender);
}
while(marriageStatus != 'Y' && marriageStatus != 'N'){
printf("Married?(Y/N): ");
scanf("%s", &marriageStatus);
marriageStatus = toupper(marriageStatus);
if(marriageStatus == 'Y' && employeePtr[i].gender == 'F'){
employeePtr[i].married = true;
strcpy(employeePtr[i].Pp, "Mrs.");
}
else{
if(marriageStatus != 'Y' && employeePtr[i].gender == 'F'){
strcpy(employeePtr[i].Pp, "Miss");
}
else{
strcpy(employeePtr[i].Pp, "Mr.");
}
}
}
}
}
void printEmployeeDetails(const Employee * const employeePtr){
system("CLS");
for(int i = 0; i < NO; ++i){
printf("Employee No.: %d\n\nName: %s %s %s\nAge: %u\nGender: %c\n\n\n",i,employeePtr[i].Pp,employeePtr[i].fName,employeePtr[i].lName,employeePtr[i].age,employeePtr[i].gender);
}
}
I have a problem in function fillEmployeeDetails at
scanf("%s", &marriageStatus);
in which this line is changing my i(if i =>1) to 0, any help would be appreciated.