Cześć otóż mam problem.
Mam plik który wygląda tak
3
5 2 9
3 9 6
2 9 1
W pierwszym wierszu jest, wymiar macierz M 3 x 3
I za pomocą funkcji sscanf, mam wczytać rozmiar macierzy (pierwszy wiersz).
A następnie Macierz 3 x 3 do dwuwymiarowej tablicy.
Jezyk C
0
0
0
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (void)
{
FILE *fp;
fp=fopen("macierz.txt","r");
char bufor[1024];
int tab[60][60];
int wymiar;
int ileLinijek=1;
if(fp==NULL)
{
perror("Nie moge otworzyc");
return -1;
}
for(;;){
if(fgets(bufor,3,fp)==NULL) break;
sscanf(bufor, "%d", &wymiar);
ileLinijek++;
if(ileLinijek>1) break;
}
printf("%d\n",wymiar);
if((fp=fopen("macierz.txt","r"))!=NULL)
{
for(int i=0; i<wymiar; ++i){
for(int j=0; j<wymiar; ++j){
fscanf(fp,"%d",&tab[i][j]);
}
}
}
if((fp=fopen("macierz.txt","r"))!=NULL){
for(int i=0; i<wymiar; ++i){
for(int j=0; j<wymiar; ++j){
printf("%d ",tab[i][j]);
}
printf("\n");
}
}
return 0;
}
1
#include <stdio.h>
#include <stdlib.h>
void fatal(int ok,const char msg[]) { if(!ok) exit(fprintf(stderr,msg)-1); }
int main (void)
{
FILE *fp=fopen("macierz.txt","r");
int x,y,size;
int tab[60][60];
fatal(fp!=NULL,"Nie moge otworzyc");
fatal(fscanf(fp,"%d",&size)==1,"Nie udalo sie wczytac rozmiar");
for(y=0;y<size;++y)
{
for(x=0;x<size;++x)
{
fatal(fscanf(fp,"%d",&tab[y][x])==1,"Nie udalo sie wczytac wartosci");
}
}
for(y=0;y<size;++y,printf("\n")) for(x=0;x<size;++x) printf("%d ",tab[y][x]);
return 0;
}