স্ট্রিম ম্যানিপুলেটর হল বিশেষভাবে স্ট্রিম অবজেক্টে সন্নিবেশ (<<) এবং নিষ্কাশন (>>) অপারেটরগুলির সাথে একত্রে ব্যবহার করার জন্য ডিজাইন করা ফাংশন, উদাহরণস্বরূপ −
std::cout << std::setw(10);
এগুলি এখনও নিয়মিত ফাংশন এবং আর্গুমেন্ট হিসাবে একটি স্ট্রীম অবজেক্ট ব্যবহার করে অন্য যেকোন ফাংশন হিসাবেও বলা যেতে পারে, উদাহরণস্বরূপ −
boolalpha (cout);
ম্যানিপুলেটরগুলি স্ট্রিমগুলিতে ফর্ম্যাটিং প্যারামিটার পরিবর্তন করতে এবং নির্দিষ্ট বিশেষ অক্ষর সন্নিবেশ বা নিষ্কাশন করতে ব্যবহৃত হয়৷
নিচে কিছু বহুল ব্যবহৃত C++ ম্যানিপুলেটর −
দেওয়া হলendl
এই ম্যানিপুলেটরের কার্যকারিতা '\n'(নতুন লাইনের অক্ষর) এর মতোই রয়েছে। কিন্তু এটি আউটপুট স্ট্রীমকেও ফ্লাশ করে।
উদাহরণ
#include<iostream> int main() { std::cout << "Hello" << std::endl << "World!"; }
আউটপুট
Hello World!
শোপয়েন্ট/নোশোপয়েন্ট
এই ম্যানিপুলেটর নিয়ন্ত্রণ করে যে দশমিক বিন্দু সর্বদা ফ্লোটিং-পয়েন্ট উপস্থাপনায় অন্তর্ভুক্ত থাকে কিনা।
উদাহরণ
৷
#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
সেট নির্ভুলতা
এই ম্যানিপুলেটর ফ্লোটিং-পয়েন্ট নির্ভুলতা পরিবর্তন করে। যখন একটি এক্সপ্রেশন আউট <
উদাহরণ
৷
#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
৷
এই ম্যানিপুলেটর পরবর্তী ইনপুট/আউটপুট ক্ষেত্রের প্রস্থ পরিবর্তন করে। যখন একটি এক্সপ্রেশন আউট <
উদাহরণ
#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