কম্পিউটার টিউটোরিয়াল

C++ ম্যানিপুলেটর (endl, setw, setprecision, setf) কী?


স্ট্রিম ম্যানিপুলেটর হলো কিছু ফাংশন যেগুলো সরাসরি ইন্সারশন (<<) এবং এক্সট্রাকশন (>>) অপারেটরসহ স্ট্রিম অবজেক্টের সাথে ব্যবহার করার জন্য ডিজাইন করা হয়েছে, উদাহরণস্বরূপ:

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
  1. C++-এ টাইপ কোয়ালিফায়ার কী?

  2. C++-এ ক্যারেক্টার লিটারেল কী?

  3. C++-এ বুলিয়ান লিটারেল কী?

  4. C++-এ স্ট্যান্ডার্ড লাইব্রেরি কী?