Lettura matrice da file

di il
5 risposte

Lettura matrice da file

Ciao a tutti,

sto rinfrescando il c e dovrei leggere un file contenente una matrice:

2 3

1 2 3

4 5 6

void leggi_file(char * file_name, struct allocazione* matrice) {
    int i; int j; FILE* fd;
    fd = fopen(file_name, "r");
    fscanf(fd, "%d", &matrice->rig);
    fscanf(fd, "%d", &matrice->col);
    matrice->M = (int*)malloc(sizeof(int) * matrice->rig * matrice->col);
    for (i = 0; i < matrice->rig; i++)
        for (j = 0; j < matrice->col; j++)
       {
            {
             fscanf(fd, "%d", &matrice->M[i * matrice->col + j]);
            }
        }
     fclose(fd);
  }

int main()
{
struct allocazione matrice;
leggi_file("A.txt", &matrice);
}

Mi dà errore in “A.txt”: l argomento di tipo const char è incompatibile con il parametro di tipo char.

Sapreste darmi qualche consiglio? Grazie molte!

5 Risposte

  • Re: Lettura matrice da file

    char filename[]="A.txt";
    leggi_file(filename, &matrice);
  • Re: Lettura matrice da file

    Dà i seguenti errori: LKN1107 file danneggiato o non valido: impossibile leggere in Bx033. MSB6006: “link.exe” terminato con il codice 1107.

  • Re: Lettura matrice da file

    Ho fatto un test veloce e direi che come programma funzione, ho aggiunto solo alcune cose che mancavano.

    #include <stdio.h>
    #include <alloc.h>
    
    struct allocazione
    {
     int rig,col;
     int *M;
    };
    
    void leggi_file(char file_name[], struct allocazione* matrice)
    {
        int i; int j; FILE* fd;
        fd = fopen(file_name, "r");
        fscanf(fd, "%d", &matrice->rig);
        fscanf(fd, "%d", &matrice->col);
        matrice->M= (int*)malloc(sizeof(int) * matrice->rig * matrice->col);
        for (i = 0; i < matrice->rig; i++)
            for (j = 0; j < matrice->col; j++)
           {
                {
                 fscanf(fd, "%d", &matrice->M[i * matrice->col + j]);
                }
            }
         fclose(fd);
      }
    
    
    int main()
    {
    int c1,c2;
    struct allocazione matrice;
    leggi_file("C:\\BC5\\0.txt", &matrice);
    for (c1=0;c1<matrice.rig;c1++)
     {
      for (c2=0;c2<matrice.col;c2++)
       {
        printf("%d",matrice.M[c1*(matrice.col)+c2]);
       }
      printf("\n");
     }
    }
  • Re: Lettura matrice da file

    Rocco… l'errore è LNK1107 ma è strano che si presenti durante la compilazione.

    Che tipo di progetto hai creato?

    Come compili?

  • Re: Lettura matrice da file

    Ho risolto eliminando e rifacendo il progetto da capo. Grazie a tutti dell'aiuto!

Devi accedere o registrarti per scrivere nel forum
5 risposte