In C++, I developed a simple application that requested the user to enter a number and then a string. 
Surprisingly, when I ran the application, it never paused to ask for the string. 
It simply ignored it. 
After conducting some research on StackOverflow, I discovered that I needed to include the following line:
cin.ignore(256, '\n');
before the line with the string input 
That addressed the problem and allowed the software to run. 
My issue is why C++ need the cin.ignore() line, and how can I forecast when I will need to use it.
Here's the software I created:
#include <iostream>
#include <string>
using namespace std;
int main()
{
    double num;
    string mystr;
    cout << "Please enter a number: " << "\n";
    cin >> num;
    cout << "Your number is: " << num << "\n";
    cin.ignore(256, '\n'); // Why do I need this line?
    cout << "Please enter your name: \n";
    getline (cin, mystr);
    cout << "So your name is " << mystr << "?\n";
    cout << "Have a nice day. \n";
}