Дан текстовый файл. Для каждой строки распечатать слово наибольшей длины. Если их несколько - распечатать все. Язык С++. //Предполагается, что текстовый файл содержит строки длиной не более 80 символов, строка состоит из слов, разделенных произвольным количеством пробелов.
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
int main() {
std::ifstream file("input.txt");
if (!file.is_open()) {
std::cerr << "Unable to open the file" << std::endl;
return 1;
}
std::string line;
while (std::getline(file, line)) {
std::vector<std::string> words;
std::string word;
std::istringstream iss(line);
while (iss >> word) {
words.push_back(word);
}
int max_length = 0;
for (const std::string& w : words) {
if (w.length() > max_length) {
max_length = w.length();
}
}
for (const std::string& w : words) {
if (w.length() == max_length) {
std::cout << w << " ";
}
}
std::cout << std::endl;
}
file.close();
return 0;
}
Пример содержимого файла "input.txt":
Hello thereThis is a test
Longest word is banana
Вывод программы:
thereThis
Longest banana