Задан файл целых чисел. Переписать компоненты в обратном порядке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3. void main() {
  4. FILE *file;
  5. char *fname = "some_file.txt";
  6. int a[20];
  7. file = fopen(fname,"r");
  8. for (i=0;i<20;i++)
  9. {
  10. printf("chisla:%d",a[i]);
  11. }
Я дальше фиг знает как.

Решение задачи: «Задан файл целых чисел. Переписать компоненты в обратном порядке»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. void file_reverse(FILE* fp){
  4.     int i, n;
  5.     if(!feof(fp)){
  6.         i = (fscanf(fp, "%d", &n) == 1);
  7.         file_reverse(fp);
  8.         if(i)
  9.             fprintf(fp, "%d ", n);
  10.     } else
  11.         rewind(fp);
  12. }
  13.  
  14. int main(void){
  15.         //файл должен быть создан для примера, запиши в файл: 1 2 3 4 5 6 7
  16.     FILE* fp = fopen("file.txt", "r+");
  17.     file_reverse(fp);
  18.     fclose(fp);
  19.     return 0;
  20. }

Объяснение кода листинга программы

В этом коде используется рекурсивная функция file_reverse, которая переписывает компоненты в обратном порядке из файла, открытого для чтения и записи.

  1. void file_reverse(FILE* fp) - объявление функции, которая будет выполнять перестановку компонентов в обратном порядке.
  2. int i, n; - объявление двух переменных, используемых в функции.
  3. if(!feof(fp)) - проверка, не достиг ли файловый указатель конца файла.
  4. i = (fscanf(fp,%d, &n) == 1); - чтение числа из файла в переменную n и присвоение значения переменной i равное 1, если чтение прошло успешно.
  5. file_reverse(fp); - рекурсивный вызов функции file_reverse для обработки оставшейся части файла.
  6. if(i) - проверка значения переменной i.
  7. fprintf(fp,%d , n); - запись числа n в файл в обратном порядке.
  8. rewind(fp); - возврат файлового указателя в начало файла.
  9. int main(void) - объявление функции, которая является точкой входа в программу.
  10. FILE* fp = fopen(file.txt,r+); - открытие файла с именем file.txt для чтения и записи.
  11. file_reverse(fp); - вызов функции file_reverse для перестановки компонентов в обратном порядке.
  12. fclose(fp); - закрытие файла.
  13. return 0; - завершение функции main. Для примера, перед запуском программы создается файл file.txt и записывается последовательность чисел от 1 до 7. После запуска программы числа в файле будут переставлены в обратном порядке.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы