Получить самую длинную строку файла - 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; }
Объяснение кода листинга программы
- Открывается файл
m.txt
для чтения - Создается пустой вектор для хранения строк из файла
- Создается строка-переменная myString для чтения строк из файла
- Инициализируется переменная max_size для хранения максимальной длины строки
- Инициализируется переменная index для хранения индекса строки с максимальной длиной
- В цикле происходит чтение строк из файла и добавление их в вектор
- Если длина текущей строки больше max_size, то обновляются значения max_size и index
- Завершается чтение строк из файла
- Выводится количество считанных строк
- В цикле выводятся все строки из вектора
- Выводится строка с максимальной длиной под соответствующим номером
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д