Ciao,

forse un esempio ti chiarirà meglio le idee :

codice:
#include <stdlib.h>
#include <stdio.h>

int _tmain(int argc, _TCHAR* argv[])
{

	FILE *fp; 

	int mat[3][4];  /* Matrice 3x4 di numeri interi */
	int i = 0;

	char str[3];

	/* Inizializzimo la matrice con i numero da 0 a 11 */
	for (int y = 0; y < 3; y++)
		for (int x = 0; x < 4; x++)
		{
			mat[y][x] = i;
			++i;
		}

	/* Apriamo il file per la scrittura */
	fp = fopen("matrice.txt", "w");
	if ( !fp )
	{
		printf("Errore 1 nell'apertura del file\n");
		return -1;
	}

	/* Scriviamo la matrice nel file */
	fwrite((void*)mat, sizeof(mat), 1, fp);
	fclose(fp);
	fp = NULL;


	/* Apriamo il file per la lettura */
	fp = fopen("matrice.txt", "r");
	if ( !fp )
	{
		printf("Errore 2 nell'apertura del file\n");
		return -1;
	}

	fread((void*)mat, sizeof(mat), 1, fp);
	fclose(fp);
	fp = NULL;

	/* Stampiamo a video la matrice letta dal file */
	for (int y = 0; y < 3; y++)
		for (int x = 0; x < 4; x++)
		{
			itoa(mat[y][x], str, 10);
			printf(str);
			printf("\n");
		}

	return 0;
}
nel codice riportato sopra, salviamo una matrice di numeri interi in un file, quindi apriamo il file, leggiamo la matrice e la stampiamo a video