Добавил:
vvrstcnho
Рад, если кому-то помог
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы С (для ИВТ) / Готовые лабы С / Лаба7 / Laba 7 (3
.2).c#include <stdio.h>
#include <stdlib.h>
void processBinaryFile(const char* filename) {
FILE *f = fopen(filename, "r+b");
if (!f) {
printf("Error opening file!\n");
return;
}
fseek(f, 0, SEEK_END);
long fileSize = ftell(f);
int count = fileSize / sizeof(double);
rewind(f);
printf("Original file (%d numbers):\n", count);
double *numbers = (double*)malloc(fileSize);
fread(numbers, sizeof(double), count, f);
for (int i = 0; i < count; i++) {
printf("%.2f ", numbers[i]);
}
printf("\n");
if (count >= 11) {
double lastNumber = numbers[count - 1];
// Сдвигаем числа с 10-й позиции
for (int i = count - 1; i > 10; i--) {
numbers[i] = numbers[i - 1];
}
numbers[10] = lastNumber;
rewind(f);
fwrite(numbers, sizeof(double), count, f);
printf("Modified file:\n");
for (int i = 0; i < count; i++) {
printf("%.2f ", numbers[i]);
}
printf("\n");
} else {
printf("File has less than 11 numbers, no changes made.\n");
}
free(numbers);
fclose(f);
}
int main(int argc, char* argv[]) {
char filename[100];
if (argc >= 2) {
strcpy(filename, argv[1]);
} else {
printf("Enter filename: ");
scanf("%s", filename);
}
processBinaryFile(filename);
return 0;
}
Соседние файлы в папке Лаба7
