#include <iostream>
#include <limits>

int main()
{
	int input;
	char c; //used for checking left over characters in buffer
	std::cout << "Please enter an integer: ";
	while( !(std::cin >> input) || //check if there are bad flags set
	( std::cin.get( c ) && c != '\n' ) ) //check if anything left in buffer
	{
    	std::cin.clear(); //clear error flags 
    	std::cin.ignore( std::numeric_limits<std::streamsize>::max() , '\n' ); //ignore anything left in buffer
    	std::cerr << "Invalid input. << std::endl << Please try another integer: ";
	}
	std::cout << "You entered: " << input << std::endl;
	return 0;
}