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 58 59 60 61 62 63 64 65 66 67
|
int* explode(char* stringToExplode, char separator, int width)
{
int i = 0;
int * finalArray[width];
int indicator = 0;
int buffer = 0;
int cursor = 0;
int length = strlen(stringToExplode);
for (i = 0;i < length;i++)
{
if ( stringToExplode[i] ==
separator && indicator == -1)
{
finalArray[cursor] = buffer;
cursor++;
indicator = 0;
buffer = 0;
}
else if ( stringToExplode[i] != separator && stringToExplode[i] != '\n')
{
buffer = buffer * 10 + (stringToExplode[i] - 48);
indicator = -1;
}
}
finalArray[cursor] = buffer;
return finalArray;
}
////j'ai vérifié le tableau renvoyé par explode il est correct
int** transformArrayOfCharInArrayOfInt( char* nameOfFile, int width, int height)
{
int i = 0;
int j = 0;
int k = 0;
FILE *file = NULL;
file = fopen(nameOfFile,"r");
char lineOfPixel[256];
int **p = (int **)malloc(sizeof(int*) * height);
int *q = (int *)malloc(sizeof(int) * width);
for(i = 0; i < 3; i++)
{
fgets(lineOfPixel, 256 , file);
}
fgets(lineOfPixel, 256,file);
for (i = 1; i < height ; i++)
{
fgets(lineOfPixel, 256 , file);
p[i] = (int*) malloc(sizeof(int) * width);
q = explode(lineOfPixel, ' ', width);
for (j = 0; j < width ; j++)
{
p[i][j] = q[j]; ////////// A mon avis le problème est ici
}
}
for (i = 1; i < height; i++)
{
for (j = 0; j < width; j++)
{
printf("%d|",p[i][j]);
}
printf("\n");
}
} |
Partager