Avec %30c, tu lis 30 caractères systématiquement
fscanf(fp,"%ld%s%c%ld%ld",&d.code,d.disignation,&d.famille,&d.code_fournisseur,&d.Prix_achat);
Tu dois lire le champ d.disignation sous la forme d'une chaîne de caractères %s, ce qui te permettra de
- sauter les blancs qui précèdent la chaîne
- s'arrêter au premier blanc qui suit
- avoir dans la chaîne obtenue le '\0' terminal
Par contre, lire le champ suivant, d.famille par %c va poser problème puisque tu vas lire le blanc qui le sépare du champ précédent. Il est préférable de le lire également avec %s, dans un tableau auxiliaire, puis de transférer le premier caractère du tableau dans d.famille
Partager