यहां यह है कि आप इसे std :: lib (no QT) का उपयोग करके कैसे करते हैं। अपने स्वयं के numpunct-व्युत्पन्न वर्ग को परिभाषित करें जो दशमलव बिंदु, समूहबद्ध चरित्र, और यहां तक कि समूह के बीच अंतर निर्दिष्ट कर सकते हैं। अपने पहलू वाले लोकेल के साथ एक ostringstream imbue। वांछित के रूप में उस ostringstream पर झंडे सेट करें। इसके लिए आउटपुट और स्ट्रिंग प्राप्त करें।
#include <locale>
#include <sstream>
#include <iostream>
class my_punct
: public std::numpunct<char>
{
protected:
virtual char do_decimal_point() const {return ',';}
virtual char do_thousands_sep() const {return '.';}
virtual std::string do_grouping() const {return std::string("\2\3");}
};
int main()
{
std::ostringstream os;
os.imbue(std::locale(os.getloc(), new my_punct));
os.precision(2);
fixed(os);
double x = 123456789.12;
os << x;
std::string s = os.str();
std::cout << s << '\n';
}
1.234.567.89,12
स्रोत
2011-02-20 18:13:41
मैं मदद नहीं कर सकता लेकिन पूछने - क्यों यह कस्टम विभाजक का उपयोग करने के लिए आवश्यक है? क्या आप एक सूची को पार्स कर रहे हैं और डिलीमीटर के लिए दशमलव (या अवधि) का उपयोग करने के लिए मजबूर हैं? – spbots
चूंकि यह गणित ऐप क्लाइंट कस्टम दशमलव बिंदु और हजार विभाजक वर्ण निर्दिष्ट करने के विकल्प चाहता है। इन अप्रासंगिक प्रश्न क्यों ... –