Дано задание, но реализовать его правильно не получается.
Доработайте разбиение строки на слова. Сложите слова в вектор строк words, а затем выведите его содержимое в формате:
for (string word : words) {
cout << '[' << word << ']' << endl;
}
вот мой код:

#include <iostream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;
int main() {
system("chcp 1251 > nul");
cout << "Введите строку: ";
string line;
getline(cin, line);
istringstream iss(line);
string word;
vector<string> box;
while (iss >> word) box.push_back(word);
for (auto word : box) cout << '[' << word << ']' << endl;
system("pause > nul");
}
закрывающей фигурной скобки не хватает (в начале синеньким подчёркнута открывающая без пары)
что такое words.push_back(query) и что оно делает ПО ВАШЕМУ? (это и есть проблема, а подсказку вам дали)
#include <iostream>
#include <string>
using namespace std;
int main() {
string query;
getline(cin, query);
string word;
for (int i = 0; i < query.size(); ++i) {
if (query[i] == ' ') {
cout << '[' << word << ']' << endl;
word = ""s;
} else {
word += query[i];
}
}
cout << '[' << word << ']' << endl;
}
#include < iostream>
#include < string>
#include< vector>
using namespace std;
int main() {
string word; //переменная для хранения символов из а
vector< string> words; //вектор для хранения слов из word
string a; //переменная для хранения строки
getline(cin,a);
//перебираем а посимвольно
for(int x=0; x<a.size();++x){
//если а в очередном месте символ не равен пробел или -, то добавляем символ к word
if(a.at(x)!=' '&& a.at(x)!='-'){
word+=a.at(x);
}
//в ином случае, пихаем в зад вектору words накопленные в word символы
else {
words.push_back(word);
word=""s;
}
}
//если в конце строки а нет пробела, то последнее слово не добавиться в вектор,
т. ч. пихаем насильно.
words.push_back(word);
//если words не опустело магическим образом, то перебираем ячейки в words выводя их содержимое
if(words.empty()){
cout<<"empty"s<<endl;
}
else{
for(string str : words){
cout<<'['<<str<<']'<<endl;
}
}
//проблема кода в том, что он не выячняет где слова, а где нет, а пихает набор символов перед каждым пробелом, т. е. если строка а будет начинаться с пробела или содержать более одного пробела подряд, то лишние пробелы будут выводится в скобках как слова.
}