Bonsoir,
J'essaie de bien comprendre comment fonctionne scanf et j'ai un petit souci avec le code suivant:
Lorsque j'entre un caractère, par exemple 0, à l'affichage de la chaîne, il me manque un caractère.
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; }
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 !
Partager