Bonjour!
Je n'ai trouvé aucun sujet à ce propos alors je poste!
Voilà mon problème:
je veux lire un fichier .dat (binaire) et stocker les données (enregistrées en format "short") par paquet de 15200. Voici le code:
Ce code marche parfaitement sous linux mais pas sous windows 7!!
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 //***************************************************************************************************** // // Test de de lecture des donnees. // //*****************************************************************************************************// #include <string.h> #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { FILE * file_nb =NULL; FILE *img =NULL; double **Mat=NULL; int u=0; int i=0; int l=0; int j=0; double datadbl[15200]; short datashort=0; file_nb = fopen("DATA/ANA11_12_CHIRP_CYLINDRE33_RETRO.dat", "r+"); // ouverture du fichier de donnees ecrit avec fwrite sous matlab au préalable img = fopen("IMAGE/test_datashort.txt", "w+"); if (file_nb == NULL) { printf("main: Impossible d'ouvrir le fichier projections\n"); exit(1); } for(l=0;l<15200;l++) { u=fread(&datashort, sizeof(short),1,file_nb); datadbl1[l]=(double)(datashort); fprintf(img,"%f \r\n", datadbl1[l]); if (u==0) { printf("Echec a %d\r\n",l); l=15200; } } fclose(file_nb); fclose(img); return(0); }
Pour voir ce qui cloche, j'enregistre les données lues dans un fichier texte (Image/datashort.txt) que je peux facilement comparer avec celui que me renvoie le même programme sous linux.
Je ne comprends pas pourquoi fread ne veut plus lire d'élément dans mon fichier de données à partir du 7818ème.
Est-ce que quelqu'un a déjà eu ce problème?
Pitié!
Partager