Bonjour,
je suis etudiant et l'on m'a demandé de "traduire" un code matlab en c++.
Ce code lit un fichier .dat, qui lorsqu'il est lu sous wordpad ou autre est illisible car caracteres cachés on dira.
Donc ce nést pas comme si je lisais juste une chaine ou un entier et je dois le mettre dans une variable.
Voici le code matlab, simplifié, je ne met que la parti probleme :
function [range, intensity] = readHi3D(filename)
q = fopen(filename);
fseek(q, 0, 'eof');
filesize = ftell(q);
fseek(q,0,'bof');
raw8 = fread(q,[3*ccdx + mark, inf], '4616*uint8', 3*ccdx + mark);
fclose(q);
intensity = raw8(1 + mark:ccdx + mark,:)';
range = double(lb) + double(hb)*256;
Donc il me faut ouvrir le fichier en c++, ce qui est bon,
puis il me faut le lire, j'ai essayé fread mais il renvoie un size_t et donc pour la suite je ne peux pas mettre le size_t dans ma matrice raw8.
jái alors essayer fread mais ca ne marche pas, car je pense quíl doit me manquer la precision sur les bytes.
Voici mon travail :
FILE * pFile;
pFile = fopen ("finger59-0.dat","r");
fseek(pFile,0,SEEK_END);
int filesize = ftell(pFile);
fseek(pFile,0,SEEK_SET);
rewind (pFile);
for (int i=0 ; i<601 ; i++)
for (int j=0 ; j<3*ccdx ; j++)
fscanf(pFile,"%d",&raw8[i][j]);
cout << " test raw8 " << endl;
for (int i=0 ; i<601 ; i++)
for (int j=0 ; j<3*ccdx ; j++)
cout << raw8[i][j] << endl;
ou raw8 est un tableau a deux dimension au prealable alloué.
il est de type double **.
Comment je pourria faire pour lire un fichier de ce type et donc convertir ce quíl lit en matrice comme le fait matlab ?
Merci par avance pour les aides qui pourront mettre apporté, bien sur je ne demade pas une "correction", mais juste une piste de travail apres mes tests deja effectué
Merci beaucoup !
Bonne journee et desole pour les fautes je nái pas de clavier francais azerty !