Задан файл целых чисел. Переписать компоненты в обратном порядке - 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. После запуска программы числа в файле будут переставлены в обратном порядке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д