diff --git a/src/I/un.c b/src/I/un.c index e2b5ce5..ec22005 100644 --- a/src/I/un.c +++ b/src/I/un.c @@ -26,6 +26,7 @@ void titreMenuPrincipal(void) { } void menuCandidat(VilleIUT** tiut, int* nbVilles) { + char poubelle; // Permet de stocker les caractères aspirés en trop sur stdin lors du choix dans le menu int choix; // Contient le choix de l'utilisateur dans le menu @@ -78,7 +79,9 @@ void menuCandidat(VilleIUT** tiut, int* nbVilles) { // TODO break; default: - fprintf(stderr, "\e[0;91mErreur : la valeur entrée est invalide, merci de réessayer.\n\n\e[0m"); + // Permet d'aspirer les caractères en trop sur stdin (évite de répéter le message d'erreur X fois) + while ((poubelle = getchar()) != '\n' && poubelle != EOF); + fprintf(stderr, "\e[0;91mErreur : la valeur entrée est invalide, merci de réessayer.\n\e[0m"); break; } @@ -90,13 +93,16 @@ void menuCandidat(VilleIUT** tiut, int* nbVilles) { printf("\t5 - Suivre sa candidature\n\n"); printf("\t9 - Quitter\n"); printf("-----------------------------------------------------------------------\n"); - scanf("%*c%d", &choix); + + if(scanf("%d", &choix) == 0) + choix=0; } printf("\nRetour au menu principal...\n"); } void menuResponsable(VilleIUT** tiut, int* nbVilles) { + char poubelle; // Permet de stocker les caractères aspirés en trop sur stdin lors du choix dans le menu int choix; printf("--------------------------------------------------------------------\n"); @@ -121,6 +127,8 @@ void menuResponsable(VilleIUT** tiut, int* nbVilles) { // TODO break; default: + // Permet d'aspirer les caractères en trop sur stdin (évite de répéter le message d'erreur X fois) + while ((poubelle = getchar()) != '\n' && poubelle != EOF); fprintf(stderr, "\e[0;91mErreur : la valeur entrée est invalide, merci de réessayer.\n\e[0m"); break; } @@ -130,13 +138,16 @@ void menuResponsable(VilleIUT** tiut, int* nbVilles) { printf("\t2 - Traiter les candidatures\n\n"); printf("\t9 - Quitter\n"); printf("---------------------------------------------------------------------\n"); - scanf("%*c%d", &choix); + + if(scanf("%d", &choix) == 0) + choix=0; } printf("\nRetour au menu principal...\n"); } void menuAdmin(VilleIUT** tiut, int* nbVilles) { + char poubelle; // Permet de stocker les caractères aspirés en trop sur stdin lors du choix dans le menu int choix; // Contient le choix de l'utilisateur dans le menu char pass[LEN_MAX]; @@ -285,7 +296,9 @@ void menuAdmin(VilleIUT** tiut, int* nbVilles) { } break; default: - fprintf(stderr, "\e[0;91mErreur : la valeur entrée est invalide, merci de réessayer.\n\n\e[0m"); + // Permet d'aspirer les caractères en trop sur stdin (évite de répéter le message d'erreur X fois) + while ((poubelle = getchar()) != '\n' && poubelle != EOF); + fprintf(stderr, "\e[0;91mErreur : la valeur entrée est invalide, merci de réessayer.\n\e[0m"); break; } @@ -297,13 +310,16 @@ void menuAdmin(VilleIUT** tiut, int* nbVilles) { printf("\t5 - Modifier le nom du responsable d'un département\n\n"); printf("\t9 - Quitter\n"); printf("---------------------------------------------------------------------\n"); - scanf("%*c%d", &choix); + + if(scanf("%d", &choix) == 0) + choix=0; } printf("\nRetour au menu principal...\n"); } void menuPrincipal(/* TODO: prise en compte des status actuels du recrutement */) { + char poubelle; // Permet de stocker les caractères aspirés en trop sur stdin lors du choix dans le menu int choix; // Contient le choix de l'utilisateur dans le menu int nbVilles = 0; @@ -364,6 +380,8 @@ void menuPrincipal(/* TODO: prise en compte des status actuels du recrutement */ titreMenuPrincipal(); break; default: + // Permet d'aspirer les caractères en trop sur stdin (évite de répéter le message d'erreur X fois) + while ((poubelle = getchar()) != '\n' && poubelle != EOF); fprintf(stderr, "\e[0;91mErreur : la valeur entrée est invalide, merci de réessayer.\n\e[0m"); break; } @@ -376,7 +394,9 @@ void menuPrincipal(/* TODO: prise en compte des status actuels du recrutement */ printf("\t3 - Responsable\n\n"); printf("\t9 - Quitter l'application\n"); printf("--------------------------------------------\n"); - scanf("%*c%d", &choix); + + if(scanf("%d", &choix) == 0) + choix=0; } printf("\nFermeture de l'application...\n");