Bonjour, j'ai écrit une fonction qui me permet de choisir une option. J'aimerai blinder le programme en permettant à l'utilisateur de faire une erreur de choix et de recommencer. Seulement la boucle que j'ai écrite une fois lancée (utilisateur entre un caractère invalide != (1 || 2 || 3) :p) elle se relance indéfiniement, l'instruction de mon scanf n'est plus prit en compte.

Une idée de mon erreur ? merci d'avance !
ps: Code édité après correction. la boucle fonctionne mais pas la vérification de fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
void introduction(char bla[5])
{
	int i;
	do
	{
		i=0;
		printf("/|===============================================|\\\n");
		printf("||    Bonjour et bienvenue dans notre programme  ||\n");
		printf("||	        				 ||\n");
		printf("||    Veuillez choisir l'option de votre choix	 ||\n");
		printf("||          [1]- Lancer une recherche            ||\n");
		printf("||	    [2]- Afficher les crdits		 ||\n");
		printf("||	    [3]- Quitter			 ||\n");
		printf("\\|===============================================|/\n");
		scanf("%d",&i);
		getchar();
		if (isdigit(i))
		{
 
			if(i==1)
			{
				saisie_repertoire(bla);
				lecture_repertoire(bla,NULL);
			}
			if(i==2)
			{
				credit();
			}
			if(i==3)
			{
				break;
			}
			else
			{
				printf("L'option choisie n'est pas valide, veuillez recommencer");
			}
		}		
		else
		{
			printf("L'option choisie n'est pas valide, veuillez recommencer");
		}
	}while(!((i==1)||(i==2)||(i==3)));
}