cs_Florian29
Messages postés52Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention12 avril 2006
-
12 avril 2006 à 14:19
cs_Florian29
Messages postés52Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention12 avril 2006
-
12 avril 2006 à 16:26
Salut !
J'ai un soucis pour lire un fichier contenant des donnees de ce type:
12343 11224 500.00 500.00
1432 11225 250.00 0.00
1432 11226 1.00 0.50
Je veux stocker ces donnees dans une structure de type:
typedef struct {
unsigned int ID;
unsigned int invoiceNumber;
float invoiceAmount;
float cashAmount;
} Account;
Account accountArray[50];
Avec:
while (fscanf(myFile,"%d %d %f %f\n",
&(accountArray+accountCount)->ID,
&(accountArray+accountCount)->invoiceNumber,
&(accountArray+accountCount)->invoiceAmount,
&(accountArray+accountCount)->cashAmount
)!= EOF) // This is the read and test for EOF
{
accountCount++;
}
Mais en faisant tourner ca, mon prog plante a chaque fois. En essayant d'autres solutions ca ne plante pas mais mes valeurs restent a 0.00 et la lecture est toute decallee.
Si je remplace les valeurs contenus dans le fichier par des entiers et si je mets "%d %d %d %d\n" y a pas de soucis.
J'ai essaye avec: "%d %d %.2f %.2f\n", "%d\t%d\t%.2f\t%.2f\n"....
Je vois pas ce qui pose probleme....
Taron31
Messages postés199Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention28 février 2008 12 avril 2006 à 14:54
C'est cette syntaxe là qui fait planter ton programme : &(accountArray+accountCount)->ID
Tu dois avoir un memory leak au niveau de l'instruction +accountCount ; ça doit lire n'importe où dans la mémoire...
A quoi est censé correspondre la variable accountCount ? A un index ?
___________________
MVS - Most Valuable Student ( Microsoft)
cs_Florian29
Messages postés52Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention12 avril 2006 12 avril 2006 à 16:26
Je viens de reessayer en utilisant une syntaxe plus habituelle &(accountArray[accountCount].ID)
et effectivement le probleme est resolu!!!
Etonnant.....