bonsoir,
j'ai developpé le code ci dessous afin d'ouvrir un fichier texte et transferer par la suite le contenu de inBuf dans la matrice 2D appelé gradient.
contenu du fichier texte :
207 202 202 207 209 208 211 217 207 207 211 214 210 204 208 217 ......
je veux par la suite transférer chaque nombre de inbuf dans une case du matrice gradient.
donc gradient[0][0]=207,gradient[0][1]=202......
mais malheureusement le résultat affiché n'est pas juste.
d'où vienne l'erreur je sais pas!!!!
Merci d'avance
Code:#include<stdio.h> int main() { short int dim1=280,dim2=320; int size=dim1*dim2,i,j; unsigned char *inBuf=0; inBuf=new unsigned char [size]; short int dim_allouee=0; unsigned char **gradient=0; gradient = new unsigned char*[dim1]; for( dim_allouee=0; dim_allouee<dim1; dim_allouee++) { gradient[ dim_allouee] = new unsigned char[dim2]; } FILE * fichier_in; fichier_in=fopen ( "imgeavant2.txt" , "r" ); fread(inBuf,1,size,fichier_in); //inBuf[dim2*i+j]---->gradient[i][j] for(i=0;i<dim1;i++) {for(j=0;j<dim2;j++) { gradient[i][j]=inBuf[dim2*i+j]; printf("gradient[%d][%d]=%c ",i,j,gradient[i][j]); } printf("\r\n"); } //liberation memoire for(i=0;i< dim_allouee;i++) { delete[] gradient[i]; } delete [] gradient; delete [] inBuf; fclose (fichier_in); return 0; }
-----