После входа на 1-ю или 2-ю страницу и возврата в меню я могу получить доступ только к 1-й странице, но не ко 2-й странице.
Я пытался поместить fflush (stdin) перед каждым вводом строки и символа.
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main()
{
int password, i, j, timesVisited;
char name[10][15]={"jay"}, address[10][40]={"singapore"}, ic[10][12], gender[10][6], contact[10][11]={"010"}, dataToEdit[8], patientToEdit[20], newData[40], menuOption, returnOption;
while(returnOption!=2){
//Menu
puts("Menara Clinic\n");
puts("Press 1 to add patients' info");
puts("Press 2 to edit patients' info");
puts("Press 3 to access patients' history");
puts("Press 4 to access inventory");
puts("Press 5 to delete patients' info"); fflush(stdin);
scanf("%c", &menuOption);
//menuOption = getch();
system("cls");
//Page 1
if(menuOption=='1')
do
{ for(i=0; i<1; i++) //CHANGE i VALUE TO 10 AFTER TESTING
{ printf("Enter name: "); fflush(stdin);
scanf("%s", name[i]);
printf("Enter gender: "); fflush(stdin);
scanf("%s", gender[i]);
printf("Enter address: "); fflush(stdin);
scanf("%s", address[i]);
printf("Enter contact no: "); fflush(stdin);
scanf("%s", contact[i]);
printf("Enter IC: "); fflush(stdin);
scanf("%s", ic[i]);
putchar('\n');
puts("Press 0 to continue");
puts("Press 1 to return to menu"); fflush(stdin);
returnOption = getch();
}
}while(returnOption=='0');
if(returnOption=='1')
{ system("cls");
continue;
}
//Page 2
else if(menuOption=='2')
{ do{
i=0;
printf("Enter name: "); fflush(stdin);
scanf("%s", patientToEdit);
for(i; i<1; i++) //CHANGE i VALUE TO 10 AFTER TESTING
{ if(strcmp(name[i], patientToEdit)==0)
{ printf("Enter data to edit: "); fflush(stdin);
scanf("%s", dataToEdit);
if(strcmp(dataToEdit,"address")==0)
{ printf("Enter new address: "); fflush(stdin);
scanf("%s", newData);
strcpy(address[i], newData);
printf("%s's new address is now %s\n", name[i], address[i]);
}
else if(strcmp(dataToEdit,"contact")==0)
{ printf("Enter new contact no: "); fflush(stdin);
scanf("%s", newData);
strcpy(contact[i], newData);
printf("%s's new contact no is now %s\n", name[i], contact[i]);
}
}
}
putchar('\n');
puts("Press 0 to continue");
puts("Press 1 to return to menu"); fflush(stdin);
returnOption = getch();
}while(returnOption=='0');
if(returnOption=='1')
{ system("cls");
continue;
}
}
}
}
Программа должна позволять вам входить на любую из страниц меню даже после того, как вы уже заходили на страницу ранее.