मुझे हाल ही में stringstream
इस तथ्य के कारण एक समस्या पैदा हो गई थी कि मैंने गलत तरीके से मान लिया था कि मैं std::setw()
हर प्रविष्टि के लिए स्ट्रिंग को प्रभावित करूंगा, जब तक कि मैं स्पष्ट रूप से नहीं बदल जाता। हालांकि, यह सम्मिलन के बाद हमेशा परेशान होता है।
// With timestruct with value of 'Oct 7 9:04 AM'
std::stringstream ss;
ss.fill('0'); ss.setf(ios::right, ios::adjustfield);
ss << setw(2) << timestruct.tm_mday;
ss << timestruct.tm_hour;
ss << timestruct.tm_min;
std::string filingTime = ss.str(); // BAD: '0794'
इसलिए, मेरे पास कई प्रश्न हैं:
- ऐसा क्यों है
setw()
? - किसी भी अन्य जोड़तोड़ इस तरह हैं?
- क्या व्यवहार
std::ios_base::width()
और के बीच अंतर हैstd::setw()
? - अंत में एक ऑनलाइन संदर्भ है जो स्पष्ट रूप से इस व्यवहार का दस्तावेज है? मेरा विक्रेता प्रलेखन (MS Visual Studio 2005) स्पष्ट रूप से यह दिखाने के लिए प्रतीत नहीं होता है।