स्ट्रीम मैनिपुलेटर्स वे फ़ंक्शन हैं जिन्हें विशेष रूप से स्ट्रीम ऑब्जेक्ट्स पर इंसर्शन (<<) और एक्सट्रैक्शन (>>) ऑपरेटर्स के साथ संयोजन में उपयोग करने के लिए डिज़ाइन किया गया है, उदाहरण के लिए:
std::cout << std::setw(10);
वे अभी भी नियमित फ़ंक्शन हैं और एक स्ट्रीम ऑब्जेक्ट को आर्गुमेंट के रूप में उपयोग करके किसी अन्य फ़ंक्शन की तरह भी कॉल किए जा सकते हैं, उदाहरण के लिए:
boolalpha(cout);
मैनिपुलेटर्स का उपयोग स्ट्रीम्स पर फॉर्मेटिंग पैरामीटर्स को बदलने और कुछ विशेष वर्णों को इन्सर्ट या एक्सट्रैक्ट करने के लिए किया जाता है।
निम्नलिखित कुछ सबसे व्यापक रूप से उपयोग किए जाने वाले C++ मैनिपुलेटर्स हैं:
endl
इस मैनिपुलेटर की कार्यक्षमता '\n' (न्यूलाइन कैरेक्टर) के समान है। लेकिन यह आउटपुट स्ट्रीम को फ्लश भी करता है।
उदाहरण
#include<iostream>
int main() {
std::cout << "Hello" << std::endl << "World!";
}
आउटपुट
Hello World!
showpoint/noshowpoint
यह मैनिपुलेटर कंट्रोल करता है कि फ्लोटिंग-पॉइंट प्रतिनिधित्व में दशमलव बिंदु हमेशा शामिल है या नहीं।
उदाहरण
#include <iostream>
int main() {
std::cout << "1.0 with showpoint: " << std::showpoint << 1.0 << '\n'
<< "1.0 with noshowpoint: " << std::noshowpoint << 1.0 << '\n';
}
आउटपुट
1.0 with showpoint: 1.00000 1.0 with noshowpoint: 1
setprecision
यह मैनिपुलेटर फ्लोटिंग-पॉइंट प्रिसिजन को बदलता है। जब किसी एक्सप्रेशन out << setprecision(n) या in >> setprecision(n) में उपयोग किया जाता है, तो स्ट्रीम out या in के प्रिसिजन पैरामीटर को ठीक n पर सेट करता है।
उदाहरण
#include <iostream>
#include <iomanip>
int main() {
const long double pi = 3.141592653589793239;
std::cout << "default precision (6): " << pi << '\n'
<< "std::setprecision(10): " << std::setprecision(10) << pi << '\n';
}
आउटपुट
default precision (6): 3.14159 std::setprecision(10): 3.141592654
setw
यह मैनिपुलेटर अगले इनपुट/आउटपुट फील्ड की चौड़ाई को बदलता है। जब किसी एक्सप्रेशन out << setw(n) या in >> setw(n) में उपयोग किया जाता है, तो स्ट्रीम out या in के चौड़ाई पैरामीटर को ठीक n पर सेट करता है।
उदाहरण
#include <iostream>
#include <iomanip>
int main() {
std::cout << "no setw:" << 42 << '\n'
<< "setw(6):" << std::setw(6) << 42 << '\n'
<< "setw(6), several elements: " << 89 << std::setw(6) << 12 << 34 << '\n';
}
आउटपुट
no setw:42 setw(6): 42 setw(6), several elements: 89 1234