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

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

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

#include <stdio.h>
#include <string.h>
void main() {
FILE *file; 
    char *fname = "some_file.txt";
    int a[20];
file = fopen(fname,"r");
for (i=0;i<20;i++)
{
printf("chisla:%d",a[i]);    
}
Я дальше фиг знает как.

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

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

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

В этом коде используется рекурсивная функция 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
Похожие ответы