#include <iostream>
#include <limits>

template <typename T>
T validated_input(std::string error_message)
{
    T value;
    while(not (std::cin >> value)) { //While input fails
        std::cout << error_message; //Output error message
        std::cin.clear(); //clear error state
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); //ignore errorneous input
    }
    return value;
}


int main() {
	std::cout << "Enter your weight in pounds to one decimal point: ";
	double weight = validated_input<double>("Enter floating point value!\n");
}