Задан файл целых чисел. Переписать компоненты в обратном порядке - 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
, которая переписывает компоненты в обратном порядке из файла, открытого для чтения и записи.
void file_reverse(FILE* fp)
- объявление функции, которая будет выполнять перестановку компонентов в обратном порядке.int i, n;
- объявление двух переменных, используемых в функции.if(!feof(fp))
- проверка, не достиг ли файловый указатель конца файла.i = (fscanf(fp,
%d, &n) == 1);
- чтение числа из файла в переменнуюn
и присвоение значения переменнойi
равное 1, если чтение прошло успешно.file_reverse(fp);
- рекурсивный вызов функцииfile_reverse
для обработки оставшейся части файла.if(i)
- проверка значения переменнойi
.fprintf(fp,
%d, n);
- запись числаn
в файл в обратном порядке.rewind(fp);
- возврат файлового указателя в начало файла.int main(void)
- объявление функции, которая является точкой входа в программу.FILE* fp = fopen(
file.txt,
r+);
- открытие файла с именемfile.txt
для чтения и записи.file_reverse(fp);
- вызов функцииfile_reverse
для перестановки компонентов в обратном порядке.fclose(fp);
- закрытие файла.return 0;
- завершение функцииmain
. Для примера, перед запуском программы создается файлfile.txt
и записывается последовательность чисел от 1 до 7. После запуска программы числа в файле будут переставлены в обратном порядке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д