Récupération des informations contenues dans un fichier
J'essaie de récupérer certaines informations depuis un fichier, ligne par ligne. Le traitement dépend du premier caractère de la ligne.
J'ai des lignes de la forme "lettre double double double" que je dois traiter.
J'ai essayé pas mal de choses mais je suis toujours coincée.
Je ne récupère que des double égaux à 0 (ce qui veut dire que la transformation atof ne s'est pas bien passée).
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| char *file = AG_STRING(1);
FILE *f ;
char line[LINE_MAX] ; char tabtmp[10] ;
double sommets[MAXSIZE][3] ;
int i = 0, j = 0, k = 0, nbSommets = 0 ;
if ((f = fopen(file, "r")) != NULL) {
while (fgets(line, LINE_MAX, f) != NULL) {
i = 0 ;
if (line[i] == '#') { skipLine(f) ; }
else if (line[i] == 'v') {
i = 1 ;
for (k=0 ; k<3 ; k++) {
j = 0 ;
while (&line[i] != " ") { i++ ; } // on avance
while (&line[i] != " ") { // on copie
tabtmp[j] = line[i] ;
i++ ; j++ ;
}
tabtmp[j] = '\0' ; // fin de chaine
sommets[nbSommets][k] = atof(tabtmp) ; // conversion
tabtmp[0] = '\0' ; // chaine vide
nbSommets++ ;
}
}
}
fclose(f) ;
} |
Je voudrais un conseil pour m'aider à avancer ou bien une toute nouvelle piste si celle que j'ai suivie n'est pas la bonne.
J'ai essayé pas mal de choses (fscanf et autres) mais je n'arrive à rien:(!
Merci !