I don't understand how to make a Pointer Structure can someone help me to modify my
program?! and I have another problem, I'm using fgets scanning but there is a problem after an input for numbers 1 to 4 the fgets captures NULL and pass thru the default in my switch statement how can I stop that?because my professor what to capture the spaces..lastly how can i check the values of the real and imaginary numbers using atof when the input is a string or a char and there is no range of values how can i do that?!Thank!!

Code:
```//This program prints the initialized value of two complex numbers and allows
//the user to change the values of the real and imaginary numbers of the two
//complex numbers. This program can also solve the sum and the product of the
//two complex numbers and display all the complex numbers in the program.

#include<stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>

typedef struct CN{
double real;
double img;
}CN;

CN Sum(CN cx, CN cy){
CN cz;
cz.real=cx.real+cy.real;
cz.img=cx.img+cy.img;
return cz;
}
CN Mul(CN cx, CN cy){
CN cz;
double a,b,c,d;
a=cx.real*cy.real;
b=cx.real*cy.img;
c=cx.img*cy.real;
d=-1.0*(cx.img*cy.img);
cz.real=a+d;
cz.img=b+c;
return cz;
}

void DisplayCN();

int main(void){
CN cx,cy,cz;
char error[128];
int selection;

cx.real=1.0;
cx.img=-2.0;
cy.real=3.0;
cy.img=4.0;

do{
system("cls");
printf("The Starting Values:\n");
printf("CN1: %.2f%+.2fi\n",cx.real,cx.img);
printf("CN2: %.2f%+.2fi\n\n",cy.real,cy.img);
printf("Complex Number Selection Screen\n\n");
printf("First Complex Number:\n");
printf("1 - Change the Value of the Real Number\n");
printf("2 - Change the Value of the Imaginary Number\n\n");
printf("Second Complex Number:\n");
printf("3 - Change the Value of the Real Number\n");
printf("4 - Change the Value of the Imaginary Number\n\n");
printf("Complex Number Operations:\n");
printf("5 - Add the two Complex Numbers\n");
printf("6 - Multiply the two Complex Numbers\n");
printf("7 - Display all the Complex Numbers\n");
printf("8 - Exit\n");
fgets(error,128,stdin);
selection=atoi(error);
switch(selection){
case 1:
system("cls");
printf("Change the Value of the Real Number\n");
printf("CN1: %.2f%+.2fi\n",cx.real,cx.img);
printf("New Value for the Real Number: ");
scanf("%lf",&cx.real);
getche();
break;
case 2:
system("cls");
printf("Change the Value of the Imaginary Number\n");
printf("CN1: %.2f%+.2fi\n",cx.real,cx.img);
printf("New Value for the Imaginary Number: ");
scanf("%lf",&cx.img);
getche();
break;
case 3:
system("cls");
printf("Change the Value of the Real Number\n");
printf("CN2: %.2f%+.2fi\n",cy.real,cy.img);
printf("New Value for the Real Number: ");
scanf("%lf",&cy.real);
getche();
break;
case 4:
system("cls");
printf("Change the Value of the Imaginary Number\n");
printf("CN2: %.2f%+.2fi\n",cy.real,cy.img);
printf("New Value for the Imaginary Number: ");
scanf("%lf",&cy.img);
getche();
break;
case 5:
system("cls");
printf("Sum of the Complex Numbers\n");
cz=Sum(cx,cy);
printf("The Sum of the Complex Numbers is %.2f%+.2fi\n",cz.real,cz.img);
getche();
break;
case 6:
system("cls");
printf("Product of the Complex Numbers\n");
cz=Mul(cx,cy);
printf("The Product of the Complex Numbers is %.2f%+.2fi\n",cz.real,cz.img);
getche();
break;
case 7:
system("cls");
DisplayCN(cx,cy,cz);
break;
case 8:
exit(1);
break;
default:
system("cls");
printf("Please press the spacebar to continue!!");
getche();
break;
}
}while(selection!=8);
}

void DisplayCN(CN cx,CN cy,CN cz){
printf("The Values of the Complex Numbers:\n");
printf("CN1: %.2f%+.2fi\n",cx.real,cx.img);
printf("CN2: %.2f%+.2fi\n\n",cy.real,cy.img);
printf("Sum of the Complex Numbers\n");
cz=Sum(cx,cy);
printf("%.2f%+.2fi\n\n",cz.real,cz.img);
printf("Product of the Complex Numbers\n");
cz=Mul(cx,cy);
printf("%.2f%+.2fi\n",cz.real,cz.img);
getche();
}```