#include <iostream>
#include <locale>
#include <locale.h>
#include <sstream>
using namespace std;
int main(int argc, char* argv[])
{
locale::global(locale("Russian_Russia.1251"));
setlocale(LC_ALL, "Russian_Russia.1251");
double d = 15.27;
stringstream stream;
stream << d;
cout << "locale_ru: " << stream.str() << endl;
// Очищаем буфер
stream.str("");
stream.imbue(locale::classic());
stream << d;
cout << "locale_classic: " << stream.str() << endl;
cin.get();
return 0;
}
Не работает imbue у stringstream в C++Builder2010
Код:
В итоге выводится следующее:
Код:
locale_ru: 15,27
locale_classic: 15,27
locale_classic: 15,27
В С++Builder2010(update 4,5), в обоих случаях выводится число с запятой, хотя во втором случае должна быть точка. В C++Builder6 нормально работает. Кто нибудь сталкивался с проблемой?