Из текстового файла имеющего не мение 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;
}
Объяснение кода листинга программы
В этом коде выполняется поиск самой длинной строки в текстовом файле, содержащей указанную подстроку. Код считывает файл построчно, сохраняя каждую строку в буфере. Затем он проверяет длину строки и обновляет длину и номер самой длинной строки, если текущая строка длиннее. Также код проверяет, содержит ли текущая строка указанную подстроку, и выводит ее, если она найдена. В конце код выводит номер самой длинной строки.