मैं एक विशिष्ट प्रारूप (एक हजारों विभाजक के रूप में apostrophes का उपयोग कर) के साथ एक स्ट्रिंग के लिए एक डबल प्रारूपित करने के लिए std :: ostringstream का उपयोग कर रहा हूँ। हालांकि, कुछ मामलों में ostringstream ने मुझे जो अपेक्षा की थी उससे अलग परिणाम दिया।std :: ostringstream गलत स्थान पर साइन इन करता है?
जहां तक मैं कह सकता हूं, नीचे दिए गए कोड का अपेक्षित आउटपुट "+01" होना चाहिए; इसके बजाय यह "0 + 1" आउटपुट करता है। मैं यहां क्या गलत कर रहा हूं, और मुझे परिणाम की आवश्यकता कैसे मिल सकती है?
#include <iomanip>
#include <iostream>
#include <sstream>
int main()
{
std::ostringstream stream;
stream << std::showpos; // Always show sign
stream << std::setw(3); // Minimum 3 characters
stream << std::setfill('0'); // Zero-padded
stream << 1; // Expected output: "+01"
std::cout << stream.str(); // Output: "0+1"
return 0;
}
केवल कुछ और पात्रों के साथ, 'ओएसएस << (x> = 0? : '+': '-'); 'मेरी राय में, और अधिक पठनीय होगा। – YSC
पीओ चाहता है कि यह प्राप्त करना संभव है। बस @ पेट बेकर का जवाब या मेरा देखो। – informaticienzero