Bonsoir,

Je sais que ma question peut paraître tarabiscotée mais quelque chose m'intrigue à propos du while interne du code ci-dessous :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
    do{
        printf("un nb svp\n");
        compte = scanf("%d", &x);
        while (y=(getchar()!='\n'),z=printf("y=%d et z=%d\n",y,z));
    }
    while(compte!=1);
Normalement on sort d'un while quand l'expression est à zéro et je ne sors pas de mon while interne -
Code : Sélectionner tout - Visualiser dans une fenêtre à part
while (y=(getchar()!='\n'),z=printf("y=%d et z=%d\n",y,z))
- alors même que le est à 0 et le
Code : Sélectionner tout - Visualiser dans une fenêtre à part
printf("y=%d et z=%d\n",y,z)
- que j'ai inséré pour voir ce que vaut le getchar() - et je teste même le printf avec le z - qui est aussi à zéro.
Donc tout le while vaut zéro - à la première saisie ensuite z se met à valoir 11, puis 12 ! - et je devrais en sortir à la première saisie, mais non je reste dedans et je ne comprends pas du tout pourquoi ?

Je vous remercie de bien vouloir m'éclairer là dessus si vous avez une idée, merci d'avance !