Обмен между пятью файлами по кольцевой схеме - C (СИ)
Формулировка задачи:
Заданы файлы f1, f2, f3, f4, f5, компонентами которых являются действительные числа. Организовать обмен компонентов между файлами в соответствии со схемой:
f1->f2,
f2->f3,
f3->f4,
f4->f5,
f5->f1.
Разрешается использовать один промежуточный файл h.
_________________________
Запись в файлы идет, но никак не могу сделать обмен, помогите исправить код.
#include <stdio.h>
main()
{
float ch1[10], ch2[10], ch3[10], ch4[10], ch5[10];
int n, i;
printf("Vvedite n:\n");
scanf("%i", &n);
FILE *f1;
f1=fopen("c:\\prog13\\f1.txt", "w");
printf("Vvedite chisla\n");
for(i=0;i<n;i++)
{
scanf("%f", &ch1[i]);
}
for(i=0;i<n;i++)
fprintf(f1, "%8.3f", ch1[i]);
fclose(f1);
FILE *f2;
f2=fopen("c:\\prog13\\f2.txt", "w");
printf("\nVvedite chisla\n");
for(i=0;i<n;i++)
{
scanf("%f", &ch2[i]);
}
for(i=0;i<n;i++)
fprintf(f2, "%8.3f", ch2[i]);
fclose(f2);
FILE *f3;
f3=fopen("c:\\prog13\\f3.txt", "w");
printf("\nVvedite chisla\n");
for(i=0;i<n;i++)
{
scanf("%f", &ch3[i]);
}
for(i=0;i<n;i++)
fprintf(f3, "%8.3f", ch3[i]);
fclose(f3);
FILE *f4;
f4=fopen("c:\\prog13\\f4.txt", "w");
printf("\nVvedite chisla\n");
for(i=0;i<n;i++)
{
scanf("%f", &ch4[i]);
}
for(i=0;i<n;i++)
fprintf(f4, "%8.3f", ch4[i]);
fclose(f4);
FILE *f5;
f5=fopen("c:\\prog13\\f5.txt", "w");
printf("\nVvedite chisla\n");
for(i=0;i<n;i++)
{
scanf("%f", &ch5[i]);
}
for(i=0;i<n;i++)
fprintf(f5, "%8.3f", ch5[i]);
fclose(f5);
FILE *h;
h=fopen("c:\\prog13\\h.txt", "w");
f1=fopen("c:\\prog13\\h.txt", "r");
for(i=0;i<n;i++)
{
while (fread(&ch1[i], sizeof(float), 1, f1)!=0)
{
fwrite(&ch1[i], sizeof(float), 1, h);
}
}
fclose(f1);
fclose(h);
}
Актуально, объясните хотя бы сам принцип обмена данными в файлах в Си)
Решение задачи: «Обмен между пятью файлами по кольцевой схеме»
textual
Листинг программы
#define file1 "f1.txt" #define file2 "f2.txt" #define file3 "f3.txt" #define file4 "f4.txt" #define N 4
Объяснение кода листинга программы
- #define - это директива препроцессора, которая используется для определения констант.
- file1, file2, file3, file4 - это константы, которые представляют имена файлов.
- N - это константа, которая представляет количество файлов в кольцевой схеме.
- В коде отсутствует основной блок, поэтому нельзя указать, что происходит в блоке.