How to read until EOF from cin in C++

The only way you can read a variable amount of data from stdin is using loops. I’ve always found that the std::getline() function works very well:

std::string line;
while (std::getline(std::cin, line))
{
    std::cout << line << std::endl;
}

By default getline() reads until a newline. You can specify an alternative termination character, but EOF is not itself a character so you cannot simply make one call to getline().

Leave a Comment