Executing the command:
./program < input.txt
with the following code checking:
string input;
while(cin) {
getline(cin,
@Jacob had the correct solution but deleted his answer for some reason. Here's what's going on in your loop:
cin
is checked for any of the failure bits (BADBIT, FAILBIT)cin
reports no problem because nothing has yet been read from the file.getline
is called which detects end of file, setting the EOF bit and FAILBIT.You need to do something like this instead:
std::string input;
while(std::getline(std::cin, input))
{
//Have your way with the input.
}