Tableau et fichier en C
donomar
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
yagami -
yagami -
Bonjour,
voila me revoila encore avec un hic.je souhaiterai transferer le contenu d'un tableau de structure dans une fichier text et vis versa.merci d'avance pour votre aide pour votre aide
voila me revoila encore avec un hic.je souhaiterai transferer le contenu d'un tableau de structure dans une fichier text et vis versa.merci d'avance pour votre aide pour votre aide
A voir également:
- Tableau et fichier en C
- Fichier bin - Guide
- Tableau word - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
1 réponse
pour des structure au ficher
ouverture en mode ajout
ensuite une boucle pour tout stocké et tu utilises des fprintf pour stocké les champs
pour du fichier au structure
ouverture en mode lecture
ensuite boucle pour stocké dans les champs des structures avec des fscanf
ouverture en mode ajout
fopen("fichier","a");
ensuite une boucle pour tout stocké et tu utilises des fprintf pour stocké les champs
pour du fichier au structure
ouverture en mode lecture
fopen("fichier","r");
ensuite boucle pour stocké dans les champs des structures avec des fscanf
int transfert_fichier_tab(logement tab[MAX])
{
int i=0; // variable de boucle
logement abri;
FILE *fic; // déclaration du fichier
// ouverture du fichier en mode lecture
fic=fopen("immobilier","rb");
//test si erreur
if(fic==NULL)
{
printf(" \n Erreur à l'ouverture du fichier \n");
return i;
}
else
{
//on parcourt le fichier et on soctk l'information lu dans une case du tableau
while(fread(&abri,sizeof(logement),1,fic) && !feof(fic))
{
fscanf(fic,"%s %s %d %d %d %f %d",tab[i].nom,tab[i].proprietaire,tab[i].type,tab[i].piece,tab[i].surface,tab[i].ville,tab[i].prix,tab[i].statut);
i=i+1;
}
}
//fermeture du fichier
fclose(fic);
// puis on retourne le nombre de fichier lu
return i;
}
/************************************************************
*Fonction: transfert_tab_fichier
*Objectif: transfert le contenu d'un tableau dans un fichier
*Entrée: nomFichier(char),tab(logement)
*Sortie:RIEN
************************************************************/
void transfert_tab_fichier(logement tab[MAX],int nb)
{
int i=0; // variable de boucle
FILE *fic; // déclaration du fichier
// ouverture du fichier en mode lecture
fic=fopen("immobilier","ab");
//test si erreur
if(fic==NULL)
printf(" \n Erreur à l'ouverture du fichier \n");
else
{
//on parcourt le tableau et on ecrit dans le fichier case lue
for(i=0;i<nb;i++)
fprintf(fic,"%s %s %d %d %d %f %d",tab[i].nom,tab[i].proprietaire,tab[i].type,tab[i].piece,tab[i].surface,tab[i].ville,tab[i].prix,tab[i].statut);
}
//fermerture du fichier
fclose(fic);
}
aidez moi snif.......merci
1./
****************************************
while(fread(&abri,sizeof(logement),1,fic) && !feof(fic))
****************************************
A quoi sert le "fread(&abri,sizeof(logement),1,fic)" ?
2./
******************************************
fscanf(fic,"%s %s %d %d %d %f %d",tab[i].nom,tab[i].proprietaire,tab[i].type,tab[i].piece,tab[i].surface,tab[i].ville,tab[i].prix,tab[i].statut);
fprintf(fic,"%s %s %d %d %d %f %d",tab[i].nom,tab[i].proprietaire,tab[i].type,tab[i].piece,tab[i].surface,tab[i].ville,tab[i].prix,tab[i].statut);
******************************************
N'oublies pas les adresses :
fscanf(fic,"%s %s %d %d %d %f %d", tab[i].nom, tab[i].proprietaire, &tab[i].type, &tab[i].piece, &tab[i].surface, &tab[i].ville, &tab[i].prix, &tab[i].statut);
" tab[i].ville " c'est bien un entier ?
3./
****************************************
int transfert_fichier_tab(logement tab[MAX])
{
int i=0; // variable de boucle
logement abri;
FILE *fic; // déclaration du fichier
// ouverture du fichier en mode lecture
fic=fopen("immobilier","rb");
//test si erreur
*****************************************
Si tu veux pouvoir écrire dans ton fichier, il faut l'ouvrir en écriture "w" ou en ajout "a".
La tu l'ouvres en LECTURE et en binaire, donc il n'y aura aucune modification apportée au fichier.