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 68 69 70 71 72 73 74 75 76 77 78 79
   |  
#include <iostream>
#include "cerrno"
#include "cstring"
#include <cstdio>
#include <cstdlib>
using namespace std;
 
 
 FILE *fichier;
int ***Data;
 
typedef struct
{
  int size_x;
  int size_y;
  int size_z;
  int longueur;
  unsigned char*  data_name;
} Image;
 
typedef Image *P_Image;
P_Image picture;
char *buffer;
 
int main()
{
    cout << "Hello World!" << endl;
 
    fichier = fopen("shepplogan.pgm3D", "r") ;// lecture du fichier
if(fichier== NULL)
{
    printf("\n\n\nerror can t open the file:%s\n",strerror(errno));
    exit(EXIT_FAILURE);
}
    fseek(fichier, 5, SEEK_SET); // le curseur se positionne apres 'PGM3D'
    fscanf(fichier, "%d %d %d", &(picture->size_x), &(picture->size_y), &(picture->size_z)); // lecture taille de l'image
    picture->longueur=(picture->size_x)*(picture->size_y)*(picture->size_z);
 
    //le constructeur aloue la memoire pour le fichier
    int ***Data=(int ***)malloc(picture->size_x*sizeof(int**));
 
     for(int i= 0; i < picture->size_x; i++)
     {
       Data[i]= (int **)malloc(picture->size_y*sizeof(int*));
         for(int j= 0; j < picture->size_y; j++)
         {
 
             Data[i][j]= (int *)malloc(picture->size_z*sizeof(int));
         }
     }
 
     fscanf(fichier,"%s",buffer);
     printf("taille de l'image : %d, %d, %d, \n ", picture->size_x, picture->size_y, picture->size_z );
     printf("longueur= %d \n", picture->longueur);
     printf("magic number=%s\n",buffer);
 
 
     //enregistrement des donnees de fileName.pgm3D dans Data
     for (int i=0; i < picture->size_x; i++)
     {
        for (int j=0; j < picture->size_y; j++)
        {
            for (int z=0; z < picture->size_z; z++)
            {
                fscanf(fichier,"%s",buffer);
                Data[i][j][z]=atoi(buffer);
                 /* TEST
                indice++;
                if(indice==224229)
                printf("data=%d\n",data[i][j][z]);*/
            }
        }
     }
 
     fclose(fichier);
 
    return 0;
} | 
Partager