मान लीजिए हमें तीन दोहरे मान दिए गए हैं। हमें उन्हें प्रारूपित करना होगा और उन्हें निम्नलिखित प्रारूप में प्रिंट करना होगा।
-
हमें पहले मान के पूर्णांक भाग को हेक्साडेसिमल प्रारूप में लोअरकेस अक्षरों के साथ प्रिंट करना होगा।
-
हमें दूसरा मान दो दशमलव स्थानों तक प्रिंट करना होगा, इसके आगे एक चिन्ह लगाकर यह दिखाना होगा कि यह सकारात्मक है या नकारात्मक। मुद्रित किए जाने वाले दूसरे मान को सही ठहराया जाना चाहिए और 15 वर्ण लंबा होना चाहिए, बाईं ओर अप्रयुक्त स्थिति में अंडरस्कोर के साथ गद्देदार होना चाहिए।
-
हमें तीसरे मान को नौ दशमलव स्थानों तक वैज्ञानिक संकेतन में प्रिंट करना होगा।
तो, अगर इनपुट 256.367, 5783.489, 12.5643295643 जैसा है, तो आउटपुट होगा
0x100 _______+5783.49 1.256432956E+01
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
हेक्स ध्वज हेक्साडेसिमल प्रारूप में मान को प्रिंट करता है, शोबेस ध्वज हेक्स मानों के लिए '0x' उपसर्ग दिखाता है, बायां ध्वज मान के दाईं ओर भरण वर्ण डालने के साथ आउटपुट फ़ील्ड में मान को पैड करता है, और नूपरकेस ध्वज प्रिंट करता है सभी लोअरकेस अक्षरों में आउटपुट।
-
दायां ध्वज मूल्य के बाईं ओर भरण वर्ण डालने के साथ आउटपुट फ़ील्ड में मान को पैड करता है, निश्चित ध्वज एक निश्चित-बिंदु नोटेशन में मानों को प्रिंट करता है, सेट (15) आउटपुट फ़ील्ड की लंबाई 15 पर सेट करता है, शोपॉज़ फ़्लैग आउटपुट से पहले एक '+' साइन इन्सर्ट करता है, setfill('_') आउटपुट को अंडरस्कोर से पैड करता है, और setprecision() वैल्यू के प्रिसीज़न को 2 दशमलव स्थानों तक सेट करता है।
-
setprecision() मान के सटीक को 9 दशमलव स्थानों तक सेट करता है, वैज्ञानिक ध्वज एक वैज्ञानिक संकेतन में मान को प्रिंट करता है, अपरकेस सभी अपरकेस अक्षरों में आउटपुट मान बनाता है, और noshowpos आउटपुट मान से पहले किसी भी सकारात्मक संकेत को छोड़ देता है।
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <iostream> #include <iomanip> using namespace std; void solve(double a, double b, double c) { cout << hex << showbase << nouppercase << left << (long long) a << endl; cout << right << fixed << setw(15) << setfill('_') << setprecision(2) << showpos << b << endl; cout << setprecision(9) << scientific << uppercase << noshowpos << c << endl; } int main() { solve(256.367, 5783.489, 12.5643295643); return 0; }
इनपुट
256.367, 5783.489, 12.5643295643
आउटपुट
0x100 _______+5783.49 1.256432956E+01