Je suis nouveau en C, et j'adore apprendre jusqu'à maintenant, mais j'ai rencontré un problème avec mon programme que j'ai du mal à essayer de comprendre. Dans le programme ci-dessous, si l'utilisateur entre «1», il lui sera demandé d'entrer une «clé», un «âge», un «prénom» et un «nom de famille». Cependant, lorsque l'utilisateur entre "1", le programme n'attend pas que l'utilisateur entre une valeur "Clé" et imprime directement "Age".C Le programme n'attend pas que l'utilisateur saisisse une valeur
La sortie après son entrée en « 1 »:
Entrez les informations suivantes: clé: Âge:
Le programme n'attend pas l'utilisateur d'entrer une valeur clé, avant de demander au l'utilisateur à entrer dans une valeur d'âge. Aucune erreur ou avertissement ne se produit lorsque le programme est construit.
Toute aide est grandement appréciée.
typedef struct userInputsContainer {
char inputOption[2];
char inputKey[2];
char inputAge[3];
char inputFName[10];
char inputLName[10];
}userInputsContainer;
int main()
{
struct userInputsContainer* container = (struct userInputsContainer*)malloc(sizeof(userInputsContainer));
printf("List of options..\n");
printf("1.Create Entry\n2.Search Entries\n");
fgets(container->inputOption, sizeof(container->inputOption), stdin);
if(container->inputOption[0] == '1')
{
printf("\nEnter the following information.. \n");
printf("Key: ");
fgets(container->inputKey, sizeof(container->inputKey), stdin);
printf("Age: ");
fgets(container->inputAge, sizeof(container->inputAge), stdin);
printf("First Name: ");
fgets(container->inputFName, sizeof(container->inputFName), stdin);
printf("Last Name: ");
fgets(container->inputLName, sizeof(container->inputLName), stdin);
}
}
@ user3121023 Il n'est pas nécessaire de stocker un caractère. Qu'en est-il des lignes vides? – Olaf