#include "stdio.h" /*****************************************************************************/ /* */ /* main */ /* */ /*****************************************************************************/ int main(void) { FILE * fi; char nom[80]; char article[80]; int nombre,prix; if ((fi = fopen("exer6.data","r")) == NULL) printf("Impossible d'ouvrir le fichier exer6.data\n"); else { while(fscanf(fi,"%s %s %d %d",nom,article,&nombre,&prix) != EOF) printf("%s %s %d\n",nom,article,nombre * prix); fclose(fi); } return 0; }
#include <stdio.h> enum {FAUX, VRAI}; /*****************************************************************************/ /* */ /* main */ /* */ /*****************************************************************************/ int main(void) { int i,j,r; /* les opérandes */ char c; /* l'opérateur */ char imp; /* booléen de demande d'impression du résultat */ int ret; /* code de retour de scanf */ char buf_err[80]; while (1) { if ((ret = scanf("%d %c %d",&i,&c,&j)) != 3) { if (ret == EOF) exit(0); scanf("%[^\n]",buf_err); /* on mange la partie erronée */ printf("Erreur de syntaxe : %s\n",buf_err); continue; } imp = VRAI; switch (c) { case '+' : r = i + j; break; case '-' : r = i - j; break; case '*' : r = i * j; break; case '/' : if ( j == 0) { printf("Division par zéro\n"); imp = FAUX; } else r = i / j; break; case '%' : r = i % j; break; default : printf("l'opérateur %c est incorrect\n",c); imp = FAUX; } /* fin du switch */ if (imp) printf("%d\n",r); } return 0; }