#1 Le 08/02/2007, à 17:38
- thunderjulien
[resolu] -langage C- fonction et type "FILE"
bonsoir a tous,
je travaille sur un projet en C et je bloque sur l'utilisation d'un fichier dans une fonction.
Voici mon code:
#include<stdio.h>
#include<stdlib.h>
void saisie(int *mois, int *annee);
void nombre_jours(int mois,int annee,int *nb_jours);
void temperature(FILE *ftemp,char nom1[],int nb_jours,int mois,int annee,float *temp,float*test);
int main()
{
FILE*ftemp;
FILE*fpress;
FILE*fhydro;
char nom1[]="temperature",nom2[]="pression",nom3[]="hydrometrie";
float *temp,*press,*hydro,*test;
int i,mois,annee,nb_jours;
/*creation du relevé*/
saisie(&mois,&annee);
nombre_jours(mois,annee,&nb_jours);
/*pour test*/
nb_jours=3;
/*fin pour test*/
temp=(float*)malloc(nb_jours*sizeof(float));
test=(float*)malloc(nb_jours*sizeof(float));
temperature(FILE *ftemp,nom1,nb_jours,mois,annee,&temp,&test);
//press=(float*)malloc(nb_jours*sizeof(float));
//hydro=(float*)malloc(nb_jours*sizeof(float));
/*température*/
printf("\n___________________________________\nsaisie des temperatures de %d/%d. \n___________________________________\n",mois,annee);
/*test du fichier*/
ftemp=fopen(nom1,"a");
if(ftemp==NULL)
{
printf("erreur ouverture du fichier");
}
fclose(ftemp);
/*ecriture dans le fichier*/
ftemp = fopen (nom1, "w") ; /*ouverture du fichier "temperature"*/
for (i=0 ; i<nb_jours ; i++) /*boucle pour ecrire dans le fichier*/
{
printf("Entrez la temperature du %d/%d/%d: ",i+1,mois,annee);
scanf("%f",&temp[i]);
fprintf (ftemp,"%f\n",temp[i]) ; /*ecriture du tableau temp*/
}
fclose (ftemp) ; /*fermeture du fichier*/
/*lecture du fichier*/
ftemp = fopen (nom1, "r") ; /*ouverture du fichier*/
for (i=0 ; i<nb_jours ; i++) /*boucle pour lire dans le fichier*/
{
fscanf (ftemp, "%f", &test[i]);
}
fclose (ftemp); /* fermeture du fichier */
for (i=0 ; i<nb_jours ; i++) /*boucle pour lire dans le fichier*/
{
printf("%f",test[i]);
}
/*libération memoire*/
free(temp);
//free(press);
//free(hydro);
system("pause");
system("cls");
system("pause");
return(0);
}
void saisie(int *mois, int *annee)
{
printf("\nsaisir le mois du releve:\n");
scanf("%d",mois);
printf("\nsaisir l annee du releve:\n");
scanf("%d",annee);
}
void nombre_jours(int mois,int annee,int *nb_jours)
{
if((mois==1)||(mois==3)||(mois==5)||(mois==7)||(mois==8)||(mois==10)||(mois==12))
{
*nb_jours=31;
}
if((mois==4)||(mois==6)||(mois==9)||(mois==11))
{
*nb_jours=30;
}
if(mois==2)
{
if((annee%4)==0)
{
*nb_jours=29;
}
else
{
*nb_jours=28;
}
}
}
void temperature(FILE *ftemp,char nom1[],int nb_jours,int mois,int annee,float *temp,float*test)
{
/*variables locales*/
int i;
/*test du fichier*/
ftemp=fopen(nom1,"a");
if(ftemp==NULL)
{
printf("erreur ouverture du fichier");
}
fclose(ftemp);
/*ecriture dans le fichier*/
ftemp = fopen (nom1, "w") ; /*ouverture du fichier "temperature"*/
for (i=0 ; i<nb_jours ; i++) /*boucle pour ecrire dans le fichier*/
{
printf("Entrez la temperature du %d/%d/%d: ",i+1,mois,annee);
scanf("%f",&temp[i]);
fprintf (ftemp,"%f\n",temp[i]) ; /*ecriture du tableau temp*/
}
fclose (ftemp) ; /*fermeture du fichier*/
/*lecture du fichier*/
ftemp = fopen (nom1, "r") ; /*ouverture du fichier*/
for (i=0 ; i<nb_jours ; i++) /*boucle pour lire dans le fichier*/
{
fscanf (ftemp, "%f", &test[i]);
}
fclose (ftemp); /* fermeture du fichier */
for (i=0 ; i<nb_jours ; i++) /*boucle pour lire dans le fichier*/
{
printf("%f",test[i]);
}
}
le probleme est sur les lignes:
void temperature(FILE *ftemp,char nom1[],int nb_jours,int mois,int annee,float *temp,float*test);
temperature(FILE *ftemp,nom1,nb_jours,mois,annee,&temp,&test);
si quelqun peut me dire comment on transmet le parametre de type file.
Merci d'avance
JM
Dernière modification par thunderjulien (Le 08/02/2007, à 18:34)
Hors ligne
#2 Le 08/02/2007, à 18:13
- badzil
Re : [resolu] -langage C- fonction et type "FILE"
Tu serais mieux sur développez.com
Voici ce que j'ai trouvé: http://www.developpez.net/forums/showthread.php?t=2779
J'ai programmé en C moi aussi il y a quelques temps et ça m'avait également posé problème.
Dernière modification par badzil (Le 08/02/2007, à 19:55)
Hors ligne
#3 Le 08/02/2007, à 18:33
- thunderjulien
Re : [resolu] -langage C- fonction et type "FILE"
merci super
Hors ligne