Из записанных в файл 5 строк, нужно считать и вывести на экран третью - C (СИ)

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

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

Проблема в том, что из записанных в файл 5 строк, нужно считать и вывести на экран третью.
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
int main()
{
    setlocale(LC_ALL, "Rus");
    int i;
    FILE *fp;
    if ((fp=fopen("FILE1.TXT","w"))==NULL)
        printf("Файл не открыт\n");
    else
    {
        printf("Файл открыт\n");
        for (i=0;i<5;i++)
            fprintf(fp, "Строка %d\n", i);
        fclose(fp);
    }
    return 0;
}
Спасибо.

Решение задачи: «Из записанных в файл 5 строк, нужно считать и вывести на экран третью»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#define D "\n\r"
int main(void)
{
  setlocale(LC_ALL,"Ru");
  char *a,*c;
  long int l=0;
  int i=0;
  FILE *fp;
  if ((fp=fopen("C:/out.txt","rb"))==NULL)
    printf("Файл не открыт\n");
  else
  { 
    fseek(fp,0,SEEK_END);
    l=ftell(fp);
    fseek(fp,0,SEEK_SET);
    a=(char*)malloc(sizeof(char)*l);
    fread(a,sizeof(char),l,fp);
    for(c=strtok(a,D);c!=NULL;c=strtok(NULL,D))
    {
      i++;
      if(i==3)
      {
         printf("%s\n",c);
         break;
      }    
    }
    fclose(fp);
    free(a);
  }
    return(0);
}

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

  1. Подключение необходимых библиотек для работы с файлами и строками
  2. Определение символа новой строки
  3. Установка русской локали для вывода
  4. Объявление переменных: a, c, l (long int), i (int), fp (FILE*)
  5. Проверка на открытие файла с помощью функции fopen()
  6. Если файл успешно открыт, выполняется блок кода
  7. Переход в конец файла с помощью функции fseek()
  8. Определение размера файла с помощью функции ftell()
  9. Возвращение в начало файла с помощью функции fseek()
  10. Выделение памяти под строку с помощью функции malloc()
  11. Чтение содержимого файла в выделенную память с помощью функции fread()
  12. Разделение содержимого файла на строки с помощью функции strtok()
  13. Пропускание первых двух строк с помощью функции strtok()
  14. Вывод третьей строки на экран с помощью функции printf()
  15. Закрытие файла с помощью функции fclose()
  16. Освобождение выделенной памяти с помощью функции free()
  17. Возврат значения 0, что означает успешный исход программы

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


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

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

10   голосов , оценка 4.5 из 5
Похожие ответы