Переделать процедуру, используя функцию fseek - C (СИ)
Формулировка задачи:
нужно процедуру
переделать используя функцию fseek. Помогите пожалуйста
void get_file_content(const char *str1, char *&str2) { FILE *dscr=fopen(str1,"r"); - открытие файла для чтения char buf[65535]; strcpy(buf,"\0"); - копирование в буфер указатель конца файла strcat(buf,"<p>"); - добавление к буферу тега начала параграфа while(!feof(dscr)) – цикл пока не конец файла fread(buf+3,1,sizeof(buf),dscr); - считывание файла (аргументы???) strcat(buf,"</p>"); - добавление к буферу закрывающего тега str2=buf; }
Решение задачи: «Переделать процедуру, используя функцию fseek»
textual
Листинг программы
void get_file_content(const char *str1, char *str2) { FILE * f = fopen(str1, "rb"); fseek(f, 0, SEEK_END); long l = ftell(f); fseek(f, 0, SEEK_SET); strcpy(str2,"<p>"); fread(str2+strlen("<p>"), 1, l, f); str2[l+strlen("<p>")] = '\0'; strcat(str2,"</p>"); fclose(f); }
Объяснение кода листинга программы
- Открывает файл с помощью функции fopen.
- Использует функцию fseek, чтобы переместить указатель чтения в конец файла.
- Использует функцию ftell, чтобы получить текущее положение указателя чтения.
- Снова использует функцию fseek, чтобы переместить указатель чтения в начало файла.
- Копирует строку
<p>
в начало второго параметра функции. - Использует функцию fread, чтобы прочитать содержимое файла в оставшуюся часть второго параметра функции.
- Добавляет символ '\0' в конец второго параметра функции, чтобы завершить строку.
- Использует функцию strcat, чтобы добавить строку
</p>
в конец второго параметра функции. - Закрывает файл с помощью функции fclose.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д