Pb avec fread?
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Pb avec fread?



  1. #1
    invitec1a727b3

    Pb avec fread?


    ------

    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;
    }

    -----

  2. #2
    Philou67

    Re : Pb avec fread?

    Discussion déplacée depuis le forum logiciel.

    Sauf erreur, et si ton fichier de donnée est bien au format ASCII, ta lecture du fichier n'est pas correcte. En effet, ta fonction fread va lire size octets, et non size nombres codés en ASCII séparés par des espaces, tel que tu sembles présenter le fichier de donnée d'entrée.

    Pourrais-tu mettre en pièce jointe la totalité ou un extrait du fichier d'entrée, qu'on voit comment il est constitué (il faudra sans doute le zipper).
    :'( Plus j'apprends, et plus je mesure mon ignorance

  3. #3
    invitec1a727b3

    Re : Pb avec fread?

    voila un extrait du fichier.
    la totalite du fichier est 342 Ko.
    de taille 280*320.

    désole pour le retard

    Merci d'avance.
    Fichiers attachés Fichiers attachés
    Dernière modification par Philou67 ; 05/01/2011 à 10h37. Motif: Citation inutile

  4. #4
    Philou67

    Re : Pb avec fread?

    C'est bien ce que je pensais.
    Tu fois lire ton fichier avec une boucle de fscanf. Exemple :

    Code:
    #include <stdio.h>
    main() {
        FILE *F;
        int data;
        long nb = 0;
        F = fopen("fichier.txt", "r");
        do {
            if (fscanf(F, "%d", &data) > 0) {
                printf("%d\n", data);
                nb++;
            }
        } while (!feof(F));
        printf("%ld valeurs lues\n", nb);
        fclose(F);
    }
    Cela dit, ton fichier ne contient que 7680 valeurs numériques, ce qui ne correspond pas à 280*320
    :'( Plus j'apprends, et plus je mesure mon ignorance

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Schema Chauffage Solaire Avec Stockage Intersaisonnier avec et Sans Hydroaccumulation
    Par invite9a0ec9c7 dans le forum Habitat bioclimatique, isolation et chauffage
    Réponses: 18
    Dernier message: 12/08/2011, 15h48
  2. Réponses: 10
    Dernier message: 22/03/2009, 11h34
  3. Réponses: 1
    Dernier message: 25/04/2008, 08h14
  4. Réponses: 1
    Dernier message: 25/04/2008, 08h14