Salut,
Alors voila, j'aurais besoin d'un petit coup de pate car je galere sur un truc qui au depart me paraissait simple (comme d'habitude en progra ^^).
Je cherche à importer des données d'un fichier texte et les stocker dans des tableaux de structures.
Tout d'abord les contraintes :
- obligation de portabilité win/linux/macOs -> donc pas de lib non portable.
- aucun séparateur particulier entre les éléments d'une ligne. Je connais juste le "format".
Pour exemple : voici une ligne :
Donc en gros, le nombre de caracteres varie, donc déjà je ne peux pas couper ma ligne selon des numeros de caracteres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Vertex 0: x: 1428.257568 y: -1209.638428 z: 95.780159 u: 0.000000 v: 0.000000
Je pense faire un petit algo, donc ca n'est pas vraiment le probleme, mais j'en parle au cas ou quelqu'un connaitrait un moyen plus efficace quoi ^^.
Donc mon probleme est le suivant :
Lorsque je recupere un nombre (par exemple la coordonnée x) je ne sais pas trop comment m'y prendre pour le recuperer et ensuite le caster en float.
Pour tester, voici ce que j'ai fait :
J'ai mis en toute premiere ligne de mon fichier texte un nombre entier lambda.
J'ouvre mon fichier, je lis la ligne (donc mon nombre entier quoi) je le stocke en le castant en int.
Or, quand je lis la ligne que je l'affiche, mon nombre est ok mais apres un cast en int, ca me colle un nombre qui n'a rien a voir
Donc voila, je patauge un petit peu... Pourriez vous me dire ce qui ne va pas svp ? J'ai regardé dans mon coin et je continue...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 FILE *fichierAsc; char ligne[4]; int i; if ((fichierAsc = fopen("droid.asc","rb"))!=NULL) { fgets(ligne, sizeof ligne,fichierAsc); printf("%s \n",ligne); i=int(ligne); printf("%d \n",i); fclose(fichierAsc); } else printf("erreur");
Merci d'avance
++
Partager