Operazioni sui file in C con più file sorgenti

di il
16 risposte

16 Risposte - Pagina 2

  • Re: Operazioni sui file in C con più file sorgenti

    Il file viene letto una riga alla volta, partendo ovviamente dalla prima.

    Ti stai ingarbugliando il cervello inutilmente

    Ragiona in modo semplice e lineare:'

    1) leggi i numeri interi n e m: numero di righe e numero di colonne della matrice,
    2) crei la matrice
    3) quindi leggi i n*m numeri successivi e li inserisci nella matrice
    4) ritorni la matrice

    semplice, pulito, lineare

    Funzioni da utilizzare: fopen, fclose, fscanf, malloc

    Non inventarti sistemi miracolosi (ed incasinati) per fare cose semplici.
    Non inventarti ragionamenti arzigogolati e fantasiosi se prima non hai LETTO LA DOCUMENTAZIONE SUL FUNZIONAMENTO DELLE FUNZIONI che devi utilizzare.

    Ti stai facendo le cosidette (ed assolutamente inutili) seghe mentali!

    Il problema da risolvere e' mooooolto semplice, lineare, senza nessuna particolare difficolta'.

    A parte quelle che ti vuoi, forzatamente, creare da solo.

    Se uno vuole darsi per forza delle martellate sui .... e' un suo diritto


    Consiglio: se non capisci il comportamento delle singole funzioni che dovrai utilizzare, realizza dei piccoli programmini con l'unico intento di studiare il loro comportamento.

    Realizzare un programma consiste fondamentalmente nel mettere assieme in modo opportuno singoli mattoncini. Ma anche il singolo mattoncino potrebbe a sua volta essere fatto da mattoncini piu' piccoli.

    Ovviamente si deve conoscere perfettamente il funzionamento di ogni singolo mattoncino, dal piu' piccolo al piu' grande. Senza questa conoscenza fondamentale, non c'e' nessuna possibilita' di realizzaee un programma.

    Qui, il compito dell'esercizio, e' imparare il funzionamento di alcuni dei mattoncini piu' piccoli
  • Re: Operazioni sui file in C con più file sorgenti

    Ok, grazie per la dritta!

    Sto a questo punto
    
    
    int **leggiMatrice(FILE *filename)
    {
    	int righe, colonne, **matrice, i, j, temp;
    	
    	if (filename == NULL) printf("Errore nell'apertura del file");
    	else
    	{	
    		fscanf(filename ,"%d", &righe);
    		fscanf(filename ,"%d", &colonne);
    		
    		printf("\nRighe: %d", righe);
    		printf("\nColonne: %d", colonne);
    			
    		matrice = (int**) malloc (colonne * sizeof(int*));
    		
    		//Allocazione dinamica di ogni cella (colonna) di memoria
    		for(i = 0; i < colonne; i++)
    			matrice[i] = (int*) malloc (righe * sizeof(int));
    		
    		fseek(filename, 3, 0); 
    		
    		for(i = 0; i < righe; i++)
    			for(j = 0; j < colonne; j++)
    			{
    				fscanf(filename, "%d", &temp);
    				matrice[i][j] = temp;
    			}
    		for(i = 0; i < righe; i++)
    		{
    			for(j = 0; j < colonne; j++)
    				printf("%d", matrice[i][j]);
    			printf("\n");
    		}
    		
    	}
    }
    
    Funziona. Però, la matrice non va stampata in leggiMatrice.c ma nel main.
    Dunque, al posto della stampa, metto return(matrice); .
    E nel main come faccio? Grazie
Devi accedere o registrarti per scrivere nel forum
16 risposte