int n;
std::cin >> n;
std::string s = "";
std::getline(cin, s);
I noticed that if I use cin
, my program would hang the next time I reach the line getline(cin, rangeInput)
.
Since getline()
is using cin
, is that why it is causing the program to hang if I have previously used cin
? What should I do if I want to get a line after using cin
?
std::cin
leaves an extraneous\n
in the input stream. When you usestd::getline()
, you are retrieving that\n
.Although @WilliamLannen's answer works if you really need
std::cin
, you are better off using this method:You need to clear the input stream - try adding the following after your cin:
The accepted answer to this question gives a good explanation of why/when this is required.