Bonsoir,

J'essaie de bien comprendre comment fonctionne scanf et j'ai un petit souci avec le code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
main()
{	
	fflush(stdin);
	int n_car=0;		
	char n[10]={'a','z','e','r','t','y','a','b','c','\0'};
	scanf("%[0123456789]%n",n,&n_car);
	int i = 0;	
	for(i=0;i<10;i++) printf("%c",n[i]);
	printf("\n n_car=%d\n",n_car);	
	return 0;
}
Lorsque j'entre un caractère, par exemple 0, à l'affichage de la chaîne, il me manque un caractère.
Par exemple j'entre "1" pour le scanf et le printf me renvoie:
"1ertyabc" c'est à dire qu'il me "mange" le z.
Pourtant je vérifie le nb de caractère lus, et dans l'exemple j'ai bien 1 caractère lu.

Savez-vous pourquoi ?

Merci d'avance !