Zdar, chtěl bych si ze souboru (např. matice.txt) načíst prostě matici čísel do vícerozměrného pole. Pak spočítat aritmetické průměry jednotlivých řádků a sloupců. Ale nějak nevím, jak načíst tu matici správně do vícerozměrného pole!
if ((fr = fopen("matice.txt","r")) == NULL)
{
printf("Soubor nelze otevrit!\n");
system("PAUSE");
exit(1);
}
Soubor si normálně otevřu. Teď musím nejspíš číst ze souboru po znaku a ukládat do pole. Takže mám cyklus while:
while ((c = getc(fr)) != '\n')
ale teď nevím jestli to mám pomocí cyklu for načíst do pole nebo jak. Mohl by mi někdo z vás helpnout?? Moc díky
Tak jestli si to představuju dobře, tak se čte ze souboru po znacích a po řádcích. Hodil bych tam dva do sebe vnořené cykly, jeden posunuje řádky a druhej sloupce. Akorát to budeš asi muset pustit dvakrát, abys nejdřív odpočítal kolik je řádků a kolik sloupců (podle podmínky if(znak=='\n')) a sloupce podle prvního řádku spočítáním oddělovačů (třeba mezer) a ještě můžeš zkontrolovat, jestli ve všech řádcích jsou stejný počty prvků. Pak bych inicializoval int pole[x][y]; (nebo si ho můžeš dát na hromadu do volnýho úložiště - o tom jsem se radil tady:http://pctforum.tyden.cz/viewtopic.php?t=122194) a nakonec to projeď znovu a nacpi tam ty čísla (samozřejmě podmínkou vyřešit oddělovače-mezeru něco jako if(znak==32) continue;).
PS: 32 je ASCII mezery
CPU: Intel Pentium (Prescott) 2,8GHz / 800MHz cache L1 16kB, L2 1MB; + CoolerMaster S9U1 Hyper TX MotherBoard: ASUS P5GD1PRO Intel 915P PCI-Express, GPU: ATI Radeon X700PRO 425MHz 128MB GDDR3 (860MHz), RAM: 2x256MB + 2x512MB 400MHz, HDD: Western Digital Caviar 320GB cache 16MB + Western Digital 1000GB 16MB cache, DVD mechanika: LG HL-DT-ST DVDRAM GSA-4082B writing: 8x DVD-R/+R, 4x DVD+RW/-RW, 3x DVD-RAM, 24x CD-R, 16x CD-RW reading: 12x DVD, 10x DVD-RW/+RW, 3x DVD-RAM, 32x CD. LCD: 19" AG Neovo F-419, CRT: 17" ADI Microscan M700, REPRO: Eltax concept 400 + Omnitronic P-250
Předtim sem měl c typu int, ale pak mi nefungovala funkce atoi (ASCII to Integer), tak jsem dal c typu char a už to frčí. Asi to není nejlepší řešení, takže to zkusím ještě s tim fscanfem... Ale jinak dik moc