moi je me suis un peu penche sur ton prog
et j'avoue que je suis impuissant
sous Windows il marche nickel
si je vire le fflush ca marche plus (et c'est normal)
mais sous Linux, le fflush ne fait rien ...
j'ai resume ton probleme a ca :
while (ch != 'q')
{
fflush(stdin); /* efface le tampon d'entree */
printf("\n +, -, *, /, q pour quitter : " );
scanf("%c",&ch);
}
et ben ca chie ...
et j'ai pas trouve pourquoi
pourtant je me suis epluche les man, j'ai meme essaye de choper les sources de stdio mais je les avais pas
par contre ton code est (excuse moi) pas top nivo lisibilite
utilise plutot un switch() et surtout indente un peu mieux !!!
si tu indentes bien, t'as pas besoin de mettre des /* while */ ou /* if */
while (ch != 'q')
{
fflush(stdin); /* efface le tampon d'entree */
printf("\n +, -, *, /, q pour quitter : " );
scanf("%c",&ch);
if (ch != 'q')
{
printf("Entree la premiere valeur : " );
scanf("%f",&a);
printf("Entree la seconde valeur : " );
scanf("%f",&b);
if (ch == '+')
result = a+b;
else if (ch == '-')
result = a-b;
else if (ch == '*')
result = a*b;
else
if (ch == '/' && b != 0)
result = a/b;
else
{
printf("Erreur !!" );
continue;
}
printf("le resultat de %.2f %c %.2f est de .2f\n",a,ch,b,result);
}
}
pour ton probleme, je te suggere d'essayer une autre fonction, genre getch() (conio.h)
moi je deteste scanf, justement a cause des merdes comme ca
---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite