First of all, we need to read the line until the '\n' character, which we can do with getline(). The extraction operator >> won't work here, since it will also stop reading input upon reaching a space. Once we get the whole line, we can put it into a stringstream and use cin >> str or getline(cin, str, ' ') to read the individual strings.
Another approach might be to take advantage of the fact that the extraction operator will leave the delimiter in the stream. We can then check if it's a '\n' with cin.peek().
Here's the code for the first approach:
#include <iostream> //include the standard library files individually
#include <vector>   //#include <bits/stdc++.h> is terrible practice.
#include <sstream>
int main()
{
    std::vector<std::string> words; //vector to store the strings
    std::string line;
    std::getline(std::cin, line); //get the whole line
    std::stringstream ss(line); //create stringstream containing the line
    std::string str;
    while(std::getline(ss, str, ' ')) //loops until the input fails (when ss is empty)
    {
        words.push_back(str);
    }
    for(std::string &s : words)
    {
        std::cout << s << '\n';
    }
}
And for the second approach:
#include <iostream> //include the standard library files individually
#include <vector>   //#include <bits/stdc++.h> is terrible practice.
int main()
{
    std::vector<std::string> words; //vector to store the strings
    while(std::cin.peek() != '\n') //loop until next character to be read is '\n'
    {
        std::string str; //read a word
        std::cin >> str;
        words.push_back(str);
    }
    for(std::string &s : words)
    {
        std::cout << s << '\n';
    }
}