У меня есть 8 файлов (файл% d-% d.dat) каждый с 2 столбцами и 1000 строк:
File1-1 File1-2 File1-3 File1-4
x1a y1a x1b y1b x1c y1c x1d y1d
x2a y2a x2b y2b x2c y2c x2d y2d
x3a y3a x3b y3b x3c y3c x3d y3d
. . . .
. . . .
File2-1 File2-2 File2-3 File2-4
x1e y1e x1f y1f x1g y1g x1h y1h
x2e y2e x2f y2f x2g y2g x2h y2h
x3e y3e x3f y3f x3g y3g x3h y3h
. . . .
. . . .
Я хочу суммировать второй столбец каждого файла Файл% d-1 строкапо строке и записать сумму в новый файл: Filesum1;то же самое для файла% d-2 и т. д., т. е.
Filesum1 Filesum2 and so on ..
x1a+x1e y1a+y1e x1b+x1f y1b+y1f .
x2a+x3e y2a+y2e x2b+x2f y2b+y2f .
. . . .
. . . . .
Я создал 4 новых файла:
#include <stdio.h>
int main(void)
{
int numfiles=4;
int numfileread=8;
int i,yy1, yy2, x0, x1;
FILE *files[numfiles];
FILE *f[numfileread];
for (int n = 0; n < 4; n++)
{
char filename[4];
sprintf(filename, "filesum%d.dat", n);
files[n] = fopen(filename, "w");
}
Тогда я попробовал это, но он работает неправильно:
for (int n = 0; n < 4; n++)
{
yy1=0;
yy2=0;
for(int r=1;r<4;r++)
{
char file[8];
sprintf(file, "file%d-%d.dat", r, n);
f[i] = fopen(file, "r");
fscanf(f," %d %d",&x0,&x1);
yy1+=x0;
yy2+=x1;
fclose(f);
i++;
}
fprintf(files,"%d %d\n",yy1, yy2);
fclose(files);
}
Если у меня было такое же назначение, но для чтения 50 файлов:
readFile1, readFile2, readFile3, ......., readFile50
Как я могу изменить код?