Probleme de lecture de fichiers

Signaler
Messages postés
4
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
9 juillet 2005
-
Messages postés
230
Date d'inscription
mercredi 11 février 2004
Statut
Membre
Dernière intervention
4 août 2005
-
Bonjour je suis nouvelle sur le site et egalement en C++ . D'habitude je code en fortran, mais voila on m'a donnée un code en C++ qui est censé tourné tout bien comme il faut, mais j'ai un probleme pour arriver a faire lire mes fichiers (que je crois etre en binaire c'est a dire illisible quand on les affiche a l'ecran) .
Le programe compile bien, mais c'est a l'execution il me met un "segmentation fault". Et quand j'ecris a l'ecran les valeur Ncs nu et t, c'est du n'importe quoi.
Voila un morceau du code :

#include <time.h>
#include <math.h>
#include
#include <strstream>
#include <fstream.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include
#include <string.h>


#define real double
real Ncs[3];
FILE *fsx;
float nu, t;

sprintf(filein,"");
// ouvre le fichier
sprintf(fileinx,"%sx",filein);
fsx=fopen(fileinx,"r");
if (fsx == NULL)
{ printf(" Input file %sx.dat is not found \n",filein); exit(1); }

// lis le fichier
fread(Ncs,sizeof(real),3,fsx);
fread(&nu,sizeof(real),1,fsx);
fread(&t,sizeof(real),1,fsx);

// ecris les valeurs a l'ecran
printf(" Nx=%g, Ny=%g , Nz=%g, \n",Ncs[0],Ncs[1],Ncs[2]);
printf(" nu=%e, t=%e , \n",nu,t);
===============================

Merci beaucoup de votre aide
Bab

3 réponses

Messages postés
230
Date d'inscription
mercredi 11 février 2004
Statut
Membre
Dernière intervention
4 août 2005

T'as mis le code source là ?? Et t'arrive à compiler??
Sinon l'erreur dont tu parles est dans la ligne :
fsx=fopen(fileinx,"r");
qu'il faut remplacer par
fsx=fopen(fileinx,"rb");
puisque ton fichier est binaire
Messages postés
4
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
9 juillet 2005

Non ce n 'est qu'un bout du code avec les declarations des variables et ouverture et lecture du fichier. J'ai deja essayé en ajoutant 'rb' et ça change rien, ça donne les memes valeurs a l'ecran
Messages postés
230
Date d'inscription
mercredi 11 février 2004
Statut
Membre
Dernière intervention
4 août 2005

Mets le code en entier pas seleument deux bouts de code décousus