В текстовом файле хранится текст вашей любимой песни (англоязычной). Найти в каждой строке самое длинное слово и вывести их на экран Помогите пожалуйста
[except][/except] #include <iostream> #include <fstream> #include <string> using namespace std; int main() { // Открываем файл с текстом песни ifstream file("song.txt"); if (!file.is_open()) { cout << "Не удалось открыть файл." << endl; return 1; } // Переменная для хранения текущей строки из файла string line; while (getline(file, line)) { // Переменная для хранения самого длинного слова в текущей строке string longest_word; // Переменная для хранения длины самого длинного слова в текущей строке int longest_word_length = 0; // Переменная для хранения длины текущего слова в текущей строке int current_word_length = 0; // Проходим по текущей строке и ищем самое длинное слово for (int i = 0; i < line.length(); i++) { // Если текущий символ не пробел, то это часть текущего слова if (line != ' ') { current_word_length++; // Если мы достигли конца строки и текущее слово оказалось самым длинным, // то сохраняем его как самое длинное слово if (i == line.length() - 1 && current_word_length > longest_word_length) { longest_word = line.substr(i - current_word_length + 1, current_word_length); } } // Если текущий символ пробел, то текущее слово закончилось else { // Если текущее слово оказалось самым длинным, то сохраняем его как самое длинное слово if (current_word_length > longest_word_length) { longest_word = line.substr(i - current_word_length, current_word_length); longest_word_length = current_word_length; } current_word_length = 0; } } // Выводим самое длинное слово текущей строки на экран cout << longest_word << endl; } // Закрываем файл file.close(); return 0; } [users][users][users][/users][/users][/users] Решил задание CHATGPT
Папонт, #include <iostream> #include <sstream> #include <string> #include <fstream> using namespace std; int main() { ifstream in("file.txt"); string text; getline(in, text, '\0'); stringstream t1(text); string str; while (getline(t1, str)) { stringstream t2(str); string word; pair<string, size_t> max; max = pair<string, size_t>(); while (getline(t2, word, ' ')) if (word.size() > max.second) max = make_pair(word, word.size()); cout << max.first << "\n"; } cin.get(); } C #include <iostream> #include <sstream> #include <string> #include <fstream> using namespace std; int main() { ifstream in("file.txt"); string text; getline(in, text, '\0'); stringstream t1(text); string str; while (getline(t1, str)) { stringstream t2(str); string word; pair<string, size_t> max; max = pair<string, size_t>(); while (getline(t2, word, ' ')) if (word.size() > max.second) max = make_pair(word, word.size()); cout << max.first << "\n"; } cin.get(); }