Получить самую длинную строку файла - C (СИ)

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

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

Дан текстовый файл f. Получите самую длинную строку файла. Если в файле имеется несколько строк с наибольшей длиной, то получить первую из них. Нужно на СИ

Решение задачи: «Получить самую длинную строку файла»

textual
Листинг программы
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
 
typedef std::vector<std::string>::size_type vec_size;
 
int main() {
  setlocale(0, "");
  std::ifstream ifs("m.txt");
  std::vector<std::string> vec;
  std::string myString;
  vec_size max_size = 0;
  int index = 0;
 
  if(!ifs) {
    std::cerr << "Файл открыть не удалось" << std::endl;
    std::cin.get();
    return 1;
  } else {
    for(int i = 0; std::getline(ifs, myString); ++i) {
      vec.push_back(myString);
      if(vec[i].size() > max_size) {
        max_size = vec[i].size();
        index = i;
      }
    }
  }
 
  vec_size size = vec.size();
  std::cout << "Считанные строки из файла: " << std::endl;
 
  for(int i = 0; i != size; ++i)
    std::cout << i+1 << ". " << vec[i] << std::endl;
 
  std::cout << std::endl << "Строка с максимальной длиной под номером " << index+1
  << std::endl << vec[index] << std::endl;
 
  return 0;
}

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

  1. Открывается файл m.txt для чтения
  2. Создается пустой вектор для хранения строк из файла
  3. Создается строка-переменная myString для чтения строк из файла
  4. Инициализируется переменная max_size для хранения максимальной длины строки
  5. Инициализируется переменная index для хранения индекса строки с максимальной длиной
  6. В цикле происходит чтение строк из файла и добавление их в вектор
  7. Если длина текущей строки больше max_size, то обновляются значения max_size и index
  8. Завершается чтение строк из файла
  9. Выводится количество считанных строк
  10. В цикле выводятся все строки из вектора
  11. Выводится строка с максимальной длиной под соответствующим номером

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


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

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

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