Напечатать последнюю из самых коротких строк текстового файла - C (СИ) (69572)

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

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

Подскажите пожалуйста текст программы, которая печатает последнюю из самых коротких строк текстового файла. Текстовый файл рандомный.
Вот, что получилось. Компилятор ругается на строку с открытием файла по заданному адресу. И еще не проработала момент с выводом именно ПОСЛЕДНЕЙ короткой строки. Подскажите, как это сделать
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

void main( )
{
FILE *text;
int length=100;
char *string;
if ((text = fopen("G:\IRIT-RtF\Algoritmisation\ShortStrok","r")) == NULL)
{ puts ("Error opening file");
  exit (-1);
}
while(!feof(text))// пока не конец файла
    {
        fgets(string, 100, text);
        if(strlen(string)<length)
            length=strlen(string);
    }
    
    fseek(text, sizeof( char) , SEEK_SET);
    
    while(!feof(text))
    {
        fgets(string, 100, text);
        if(strlen(string)==length)
            break;
    }
 
    puts(string);
    system("pause");
    fcloseall();
}

Решение задачи: «Напечатать последнюю из самых коротких строк текстового файла»

textual
Листинг программы
if ((text = fopen("G:\\IRIT-RtF\\Algoritmisation\\ShortStrok","r")) == NULL)

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

  1. В этом коде используется функция fopen, которая открывает файл G:\\IRIT-RtF\\Algoritmisation\\ShortStrok для чтения (режим r).
  2. Если файл не может быть открыт (например, файл не существует или нет доступа к нему), то переменная text будет равна NULL.
  3. В этом случае программа завершится и ничего не будет напечатано.

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

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