Attention ! Fermeture imminente du forum d’Elektor (pour en savoir plus, cliquer ici). À partir du vendredi 15er mars il ne sera plus possible de s’identifier sur ce forum, mais son contenu restera disponible en lecture seule jusqu’à la fin du mois. Le 1er avril, il sera fermé définitivement.

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