Langage C : Affichage - lib stdin

Postby bovix » Fri Feb 21, 2014 12:00 am

Salut à tous

Je viens cette fois à vous, car petit soucis d'affichage dans ma fenêtre lors de l'utilisation de la lib stdio.

Dans une boucle "for" - j'utilise les appels de fonction getchar() et putchar()
Ce que je n'arrive pas à comprendre c'est pourquoi il m'affiche deux fois un petit message que je place aussi dans cette boucle, voici le code :

    for(; c != 'Q'/>    {        printf("\n  veuillez inscrire une nouvelle lettre : ");        c = getchar();        putchar(c);    }


et voici ce que jobtiens à l'écran :

je n'arrive pas à comprendre pourquoi j'ai deux fois mon printf qui s'affiche ?

comme on me l'a conseillé, utiliser deux fois la fonction getchar() -> pour enregistrer le caractère voulu + l'"enter", mais la je ne sors plus du tout la boucle for.

Comme d'hab j'ai les yeux tout écarquiller de lire vos réponses, suggestions et autre formulations

autre indication :
j'utilise codeblcoks version 12.11 avec le compilateur mingw32-gcc

Amitié - le cht'y Philou'
bovix
 
Posts: 164
Joined: Fri Jan 17, 2014 4:42 pm

Postby jeffedf » Mon Feb 24, 2014 12:00 am

Bonjour Bovix,
la saisie de caractères doit se terminer par "Entrée" (Enter) sinon la fonction getchar() ne rend pas la main. Le flot d'entrée contient donc ton caractère saisi + le caractère de fin (LineFeed = 0x0A).
Essaye cela :

char c;
char cr;

for (c = 0, cr = 0;c != 'Q'
{
printf("enter : ");
c = getchar();
putchar(c);
cr = getchar();
putchar(cr);
}

Jeff
jeffedf
 
Posts: 3
Joined: Mon Jan 20, 2014 8:05 am


Return to Pour tous les thèmes hors électronique

Who is online

Users browsing this forum: No registered users and 1 guest