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

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

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

Дорого вам вреени суток! Товарищи программисты помогите пожалуйста с программой. Суть вопроса заключаеться в следующем: из текстового файла имеющего не мение 5 строк напечатать номер самой длинной строки и напечатать строку кодержащию определенный при вводе текст. Макссимум на что меня хватило это на следующие
#include <stdio.h>
main( )
{
FILE *in; 
int ch;
if((in = fopen("test", "r"))!=NULL)
 
{
while((ch = getc(in) != EOF)
    putc(ch, stdout);  
fclose(in); 
else
    printf("я не смогла открыть файл \" test\" .\n");
}
помогите очен нужна эта прога не въезжаю в тему совсем (((((....

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

textual
Листинг программы
#include <iostream.h>
#include <fstream.h>
#include <string.h>
#include <conio.h>
 
int main()
{
    // Буфер для считываемых строк
    char str[100];
 
    // Строка, которую будем искать
    char *find="test";
 
    // Файл с исходными данными
    fstream file("input.txt", ios::in);
 
    // Здесь будет номер текущей строки
    int num=0;
 
    // Здесь будет номер самой длинной строки
    int NumStr=0;
 
    // Здесь будет длина самой длинной строки
    int LenStr=0;
 
    while(true)
    {
        // Читаем файл по строке, пока он не кончится
        file >> str;
        if (file.eof()) break;
 
        // Проверяем длину строки
        if (strlen(str) > LenStr)
        {
            LenStr=strlen(str);
            NumStr=num;
        }
 
        // Ищем в текущей строке строку find
        if (strstr(str, find))
        {
            // Есть!!!
            cout << str << endl;
        }
 
        num++;
    }
 
    cout << "Номер самой длинной строки: " << NumStr << endl;
 
    getch();
 
    return 0;
}

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

В этом коде выполняется поиск самой длинной строки в текстовом файле, содержащей указанную подстроку. Код считывает файл построчно, сохраняя каждую строку в буфере. Затем он проверяет длину строки и обновляет длину и номер самой длинной строки, если текущая строка длиннее. Также код проверяет, содержит ли текущая строка указанную подстроку, и выводит ее, если она найдена. В конце код выводит номер самой длинной строки.

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


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

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

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