Nic nigdzie nie zmieniac, tylko napisac oddzielna funkcje odpowiedzialna za wczytywanie danyh z pliku. Najpierw polecam dobrac odpowiedni jego format. Polecam cos na styl:
Co bedzie oznaczac ze macierz ma 1 wiersz, 2 kolumny i jej zawartosci to 5 oraz 10(wartosc wczytywane najpierw do pierwszej kolumny pozniej do drugiej, itd). Na koncu musi byc spacja! Wtedy kod moze byc np. taki:
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
#define CHECK_SPACE(in) if(fgetc(in)!=) return -1;
int main()
{
const char* FileName="1.txt";
FILE* in=NULL;
int** Matrix=NULL;
unsigned int rows=0;
unsigned int columns=0;
if(! (in=fopen(FileName,"r")) )
return -1;
fscanf(in,"%u",&rows);
CHECK_SPACE(in);
fscanf(in,"%u",&columns);
Matrix=(int**) malloc(rows*sizeof(int));
for(unsigned int i=0;i<rows;++i)
Matrix[i]=(int*) malloc(columns*sizeof(int));
// Matrix[i][j];
// i-wiersz; j-kolumna
for(unsigned int i=0;i<columns;++i)
for(unsigned int j=0;j<rows;++j)
{
fscanf(in,"%d",&Matrix[j][i]);
CHECK_SPACE(in);
}
fclose(in);
for(unsigned int i=0;i<rows;++i)
{
for(unsigned int j=0;j<columns;++j)
{
printf("%d ",Matrix[i][j]);
}
printf("
");
}
return 0;
}
POZDRO