bab812
Messages postés4Date d'inscriptionjeudi 7 juillet 2005StatutMembreDernière intervention 9 juillet 2005
-
7 juil. 2005 à 19:35
asmanur
Messages postés230Date d'inscriptionmercredi 11 février 2004StatutMembreDernière intervention 4 août 2005
-
8 juil. 2005 à 07:07
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 :
#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);
===============================
asmanur
Messages postés230Date d'inscriptionmercredi 11 février 2004StatutMembreDernière intervention 4 août 2005 7 juil. 2005 à 19:51
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
bab812
Messages postés4Date d'inscriptionjeudi 7 juillet 2005StatutMembreDernière intervention 9 juillet 2005 7 juil. 2005 à 23:49
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