#include <locale>

struct myFacet : public std::numpunct<char>
{
        char do_decimal_point() const {return ',';}
};

#include <iostream>
#include <sstream>
#include <iterator>

int main()
{
        std::istringstream stream("3,451");

        stream.imbue(std::locale(std::locale(), new myFacet));

        std::cout << *std::istream_iterator<float>(stream);
}