Lire un champ dans un enregistrement en c

Fermé
saif87 Messages postés 109 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 2 juin 2011 - 24 janv. 2011 à 13:13
Bonjour,

sans introduction j'ai un fichier text comprenant des enregistrement chaq'un dans une line
mon probléme est d'extraire un attribut applle num_disque de cet enregistrement a fin de travailler sur
en fin de compte je veux faire de cette attribue un num sequentielle quand en ajoute un nouveau enregistrement au fichier cet attribut incremente
je programme en c
voici le code

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct disque
{
int num_disque ;
int num_inter;
char titre[20];
char genre[20];
char date[20];
float prix;
char comm[100];
};
struct interprete
{
int num_inter;
char nom[20];
char prenom[20];
char date[20];
char nat[20];
};
int main(int argc, char *argv[])
{
FILE *disq,*num_disq=NULL;
struct disque d,d1;
int num=0;
disq=fopen("C:\\Dev-Cpp\\mes projets\\disque.txt","a");
num_disq=fopen("C:\\Dev-Cpp\\mes projets\\numdisq.txt","a");
// disque=fopen("C:\\Dev-Cpp\\mes projets\\disque.txt","r+");
// disque=fopen("disque1.txt","r+");
if(disq!=NULL)
{
//fprintf (disq, "Le programme a été ouvert\n");
printf ("Veuillez entrer titre :\n");
scanf ("%s", &d.titre);
printf ("Veuillez entrer genre :\n");
scanf ("%s", &d.genre);
printf ("Veuillez entrer prix :\n");
scanf ("%f", &d.prix);
printf ("Veuillez entrer date :\n");
scanf ("%s", &d.date);
printf ("Veuillez entrer commentaire :\n");
scanf ("%s", &d.comm);
printf("Veuillez entrer numero interprete:\n");
scanf("%d",&d.num_inter);
/*fprintf(num_disq,"%d\n",num);
fscanf(num_disq,"%d",&num);*/
/* if(num!=0)
{

printf("d.num%d\n",d.num_disque);
d.num_disque+=num;
}
else
d.num_disque=1;*/
//printf("num_disq=num %d\n",d.num_disque);

fscanf(disq,"%d",&d.num_disque);
printf("num=%d\n",num);
printf("num_disque=%d\n",d.num_disque);
if(d.num_disque==num)
d.num_disque++;
fprintf (disq,"%d %f %s %s %s %s %d\n",d.num_disque,d.prix,d.genre,d.titre,d.date,d.comm,d.num_inter);
fscanf(disq,"%d %f %s %s %s %s %d",&d.num_disque,&d.prix,d.genre,d.titre,d.date,d.comm,&d.num_inter);
printf("disque ajouter avec succee\n");
printf("numero disque est %d,titre est %s,genre est %s,date est %s,prix est %f,commentaire est %s,numero interprete est %d \n",d.num_disque,d.titre,d.genre,d.date,d.prix,d.comm,d.num_inter);

printf("num disque est %d \n",d.num_disque);
}
else
{
printf("erreur dans l'ouverture de fichier ");

}
fclose(disq);
printf("soussi\n");
system("PAUSE");
return 0;
}

aidez moi svp


A voir également: