Probleme avec structure et tableau

Résolu
josh64 Messages postés 58 Statut Membre -  
josh64 Messages postés 58 Statut Membre -
Bonjour,
je tente de faire un programme qui va chercher des villes et des températures dans le fichier temperature.txt suivant :

2 //le nombres de ville
irun 12 20 14 13 24 6 17
bidard 3 10 11 9 8 14 16

mais cela ne fonctionne pas enfin si, voilà ce qui m'es retourné :

le nombre de ville est : 2
----------------------
les villes sont :
irun 12
----------------------
----------------------
i = 2 et j = 7
les temperatures sont :
0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
----------------------

donc voici mon code (en C) :

#include <stdio.h>
#include <stdlib.h>

#define TAYVILLE 10
#define NBJOUR 7

#define DEBUG

struct temperature{
char ville[TAYVILLE];
float tp[NBJOUR];
};

int main (){
int i,j;
int nbville;
FILE *fp;
fp=fopen("temperature.txt","r");
if(fp==NULL){
printf("ouverture impossible du fichier");
scanf("%*c");
exit (0);
}

fscanf(fp,"%d",&nbville);
struct temperature temper[nbville][NBJOUR];

/*on extrait le nom des villes*/
for(i=1;i<nbville+1;i++){
for(j=0;j<1;j++){
fscanf(fp,"%s ",temper[i][j].ville);
}
}

#ifdef DEBUG
printf("le nombre de ville est : %d\n",nbville);
printf("----------------------\n");
printf("les villes sont :\n");
for(i=1;i<nbville+1;i++){
for(j=0;j<1;j++){
printf("%s ",temper[i][j].ville);
//printf("%s ",temper[2][0].ville);
}
}
printf("\n----------------------\n");
#endif

/*on extrait les températures des villes*/
for(i=1;i<nbville;i++){
for(j=1;j<NBJOUR;j++){
fscanf(fp,"%f ",temper[i][j].tp);
//printf("\n%f ",temper[i][j].tp);
}
}
#ifdef DEBUG
printf("----------------------\n");
printf("i = %d et j = %d\n",i,j);
printf("les temperatures sont :\n");
for(i=1;i<nbville;i++){
for(j=0;j<NBJOUR;j++){
printf("%f ",temper[i][j].tp);
//printf("%s ",temper[2][0].tp);
}
}
printf("\n----------------------\n");
#endif
return (0);
}

i need help!
Configuration: Windows XP
Firefox 2.0.0.17

2 réponses

  1. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    il vaut mieux utiliser un tableau a une dimension
    essaye ça
    #include <stdio.h>
    #include <stdlib.h>
    
    #define TAYVILLE 10
    #define NBJOUR 7
    
    #define DEBUG
    
    struct temperature{
    char ville[TAYVILLE];
    float tp[NBJOUR];
    };
    
    int main (){
    int i,j;
    int nbville;
    FILE *fp;
    fp=fopen("temperature.txt","r");
    if(fp==NULL){
    printf("ouverture impossible du fichier");
    scanf("%*c");
    exit (0);
    }
    
    fscanf(fp,"%d",&nbville);
    
    struct temperature temper[nbville];
    /*on extrait le nom des villes*/
    for(i=0;i<nbville;i++){
    fscanf(fp,"%s",temper[i].ville);
    for(j=0;j<7;j++)
    {
        fscanf(fp,"%f",&(temper[i].tp[j]));
    }
    }
    
    #ifdef DEBUG
    printf("le nombre de ville est : %d\n",nbville);
    printf("----------------------\n");
    printf("les villes sont :\n");
    for(i=0;i<nbville;i++){
    printf("%s ",temper[i].ville);
    //printf("%s ",temper[2][0].ville);
    }
    
    printf("\n----------------------\n");
    #endif
    
    /*on extrait les températures des villes*/
    
    #ifdef DEBUG
    printf("----------------------\n");
    printf("i = %d et j = %d\n",i,j);
    printf("les temperatures sont :\n");
    for(i=0;i<nbville;i++){
    for(j=0;j<NBJOUR;j++){
    printf("%f ",temper[i].tp[j]);
    //printf("%s ",temper[2][0].tp);
    }
    }
    printf("\n----------------------\n");
    #endif
    return (0);
    }
    
    0
  2. josh64 Messages postés 58 Statut Membre 1
     
    merci beaucoup mype
    0