matica

Programovacie jazyky, rady, poradňa...
miki11
Light Expert
Light Expert
Príspevky: 74
Registrovaný: 09 feb 2008, 13:59

matica

Príspevok od používateľa miki11 »

ahojte chcem v cecku naprogramovat nacitanie matice zo suboru v ktorom mam napisane rozmery a hodnoty

3 3
1 2 3
4 5 6
8 1 7


a neviem ako mam nacitat ten rozmer a potom tie hodnoty.
kedze rozmery viem az po nacitani matica bude dynamicka ako pointer na pointer.
tu dynamicku maticu viem zostrojit, neviem len nacitanie tych hodnot.
Dakujem za pomoc.
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

fscanf(file, "%d %d\n", &x, &y);

potom si dynamicky alokujes maticu o rozmeroch x, y...

a potom citas zo suboru dalej...
neutronmind
Expert
Expert
Príspevky: 189
Registrovaný: 05 aug 2008, 14:17

Príspevok od používateľa neutronmind »

Nj, asi takto (neodskusane)

Kód: Vybrať všetko

int i, j, x, y, **matica;

fscanf(file, "%d %d", &x, &y);

matica=(int **)malloc(sizeof(int)*x);
for (i=0; i<x; i++) {
    matica[i]=(int *)malloc(sizeof(int)*y);
    for (j=0; j<y; j++) 
    	fscanf(file, "%d", &matica[i][j]);	
}
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

nechyba ti tam \n v tom fscanf?
neutronmind
Expert
Expert
Príspevky: 189
Registrovaný: 05 aug 2008, 14:17

Príspevok od používateľa neutronmind »

Nie je to potrebne, fscanf preskakuje biele znaky a bielym znakom je aj '\n', tak by to malo fungovat aj bez toho. :wink:
Napísať odpoveď