Salve a tutti.
Sto cercando qualcuno che mi possa aiutare nel mio problema. Sono alle prime armi con la programmazione in linguaggio c.
devo risolvere il seguente problema:
si realizzi un programma in grado di leggere in ingresso da un file di testo, il cui nome deve essere inserito da tastiera, una matrice di dati interi di dimensione massima 100x100. la matrice non è necessariamente quadrata.
All'interno del file, gli elementi di ogni riga della matrice sono separati tra di loro da almeno uno spazio e sono scritti su un'unica riga nel file(quindi, righe diverse del file corrispondono a righe diverse della matrice).
ad esempio il contenuto del file è il seguente:
101 0 0 401
0 3 0 300
9803 0 0 306
0 1201 0 10
0 203 304 1400
Il file riesco ad aprirlo, il mio problema non è quello.Qualcuno sa però come posso leggere i dati del file e salvarli in una matrice senza però conoscere nè il numero delle righe nè il numero delle colonne.
Ringrazio chiunque riesca ad aiutarmi a risolvere questo problema.

La mia soluzione, ho meglio quello che ho provato a fare, ma il programma non mi gira correttamente:
codice:
 printf("Inserire il nome del file: ");
    scanf("%s", str);

    if((fp=fopen(str, "r"))==NULL) //verifico anche che non ci siano errori nell'apertura dei file
    {
        printf("FILE %s NON APRIBILE!!!\n", str);
        exit(-1);
    }

    // legge ogni riga e salva i dati letti all'interno di una matrice
    while(1)
    {
    res=fgets(buff, 200, fp);
    if( res==NULL )
        {
        break;
        }
    else //salvo ogni riga in una matrice
        {
            scanf("%c",&res[k]); //leggo il primo carattere
            if (res[k]!= ' ') //é diverso dallo spazio?
            {
                k++; //se si incremento la posizione e vado a leggere il secondo carattere
            }
            else //altrimenti scrivi i caratteri fin ora nella posizione
                {
                    mat[riga][colonna]=res[k];
                    printf("[%d][%d]=%c\n",riga,colonna,res[k]);
                    colonna++;
                }
        }
            riga++;
            colonna=0;
    }

    // chiude il file
    fclose(fp);