Существует много способов правильно форматировать число в С++. Посмотрите эту статью для некоторых из них (boost::lexical_cast - мой личный фаворит): http://www.cplusplus.com/articles/numb_to_text/
Ответ 5
Информация (включая разделитель для тысяч) для форматирования числовых значений доступна в заголовке <clocale>. Этот заголовок предоставляет структуру lconv, которая имеет необходимую информацию. В частности, структура имеет элемент char *thousands_sep, который может быть именно тем, что вам нужно.
Подробную информацию см. в документации struct lconv для всех деталей.