Ahojte, nevím si rady s jedním problémem v jazyce C. Načítám soubor, ve kterém je několik řádků a v každém je různý počet čísel, každý takový řádek potřebuji sečíst. Potřebuji ovšem výsledek každého řádku uložit na svůj řádek, potom vypsat součet všech čísel, ukládám výsledky do jiného souboru. Problém ovšem je, jak mám sečíst jenom jeden řádek, a pak zvlášť jiný?
Příklad:
7.134 0.5198 2.436 0.9626
1.27 1.324 0.9639 1.538 0.4995
1.503 4.95 0.3466
0.454 2.367 0.6877 9.057 0.1807 1.112
4.287 8.675 1.511 0.4296 0.2331
Výsledek:
11.0524
5.5954
6.7996
13.8584
15.1357
Suma: 52.4415
Moje pokusy:
Při tomhle se mi sice sečtou všechny čísla, každý další součet se uloží na další řádek, ale nevím jak uložit výsledek součtu jednotlivých řádků:
while(fscanf(fr, "%lf", &cislo) == 1) { soucet += cislo; fprintf(fw, "%f\n", soucet); suma = soucet; }
fprintf(fw, "\nSuma: %f", suma);
Zkoušel jsem napsat:
while(fgets(radek, 255, fr) != NULL) { soucet += strtod(radek, NULL); fprintf(fw, "%f\n", soucet); suma = soucet; }
fprintf(fw, "\nSuma: %f", suma);
To mi ale sečte jenom první čísla na každém řádku. Popravdě ani nevím, jak přesně strtod() funguje.
Nakonec jsem napsal tohle:
do
{
while(((c = getc(fr)) != EOF) && c != '\n')
{
soucet += <???>;
}
fprintf(fw, "%f\n", soucet);
suma += soucet;
soucet = 0;
} while((c = getc(fr)) != EOF);
fprintf(fw, "\nSuma: %f", suma);
Napadlo mě projít každý řádek až po '\n', ale stále nemohu přijít na to jak sečíst všechny čísla na každém konkrétním řádku. Nevíte někdo co bych měl napsat místo těch otazníků?
Dík.