String Streams (istringstream, ostringstream) এর ব্যবহার

I/O Streams (ইনপুট/আউটপুট স্ট্রিমস) - সি++ স্ট্যান্ডার্ড লাইব্রেরি (C++ Standard Library) - Computer Programming

369

String Streams, বিশেষ করে istringstream এবং ostringstream, C++ স্ট্যান্ডার্ড লাইব্রেরিতে sstream হেডার ফাইলে সংযুক্ত থাকে। এগুলো ব্যবহার করে স্ট্রিং থেকে ডেটা পড়া (istringstream) এবং স্ট্রিং-এ ডেটা লেখা (ostringstream) করা যায়। এগুলো প্রোগ্রামারদের স্ট্রিং ম্যানিপুলেশন এবং ডেটা প্রসেসিং আরও সহজ করতে সাহায্য করে।


১. istringstream এর ব্যবহার

istringstream ক্লাসটি মূলত স্ট্রিং থেকে ডেটা পড়ার জন্য ব্যবহৃত হয়। এটি স্ট্রিংয়ের ডেটা স্ট্রিমের মতো ব্যবহার করে, যেটি থেকে বিভিন্ন ডেটা টাইপে রূপান্তর করে ডেটা পড়া যায়।

উদাহরণ:

#include <iostream>
#include <sstream> // sstream ইনক্লুড করতে হবে
#include <string>

int main() {
    std::string str = "10 20 30";
    std::istringstream iss(str); // istringstream অবজেক্ট তৈরি

    int num;
    while (iss >> num) { // স্ট্রিং থেকে প্রতিটি সংখ্যা পড়া
        std::cout << num << std::endl;
    }

    return 0;
}

এখানে, istringstream স্ট্রিং str থেকে এক এক করে ডেটা পড়ে এবং প্রতিটি সংখ্যা num ভেরিয়েবলে সঞ্চয় করে। এটি মূলত স্ট্রিং থেকে আলাদা করে ভিন্ন ডেটা টাইপে রূপান্তরের জন্য উপকারী।


২. ostringstream এর ব্যবহার

ostringstream ক্লাসটি মূলত স্ট্রিংয়ে ডেটা লেখার জন্য ব্যবহৃত হয়। এটি এক বা একাধিক ডেটা টাইপকে একটি স্ট্রিংয়ে সংযুক্ত করে এবং পরে স্ট্রিং আকারে সেই ডেটা রিটার্ন করে।

উদাহরণ:

#include <iostream>
#include <sstream> // sstream ইনক্লুড করতে হবে
#include <string>

int main() {
    std::ostringstream oss; // ostringstream অবজেক্ট তৈরি

    int a = 10;
    double b = 20.5;
    std::string str = "Hello";

    oss << a << " " << b << " " << str; // বিভিন্ন ডেটা oss এ লেখা

    // oss কে স্ট্রিং এ রূপান্তর করা এবং আউটপুট
    std::cout << oss.str() << std::endl;

    return 0;
}

এখানে, ostringstream বিভিন্ন ডেটা টাইপকে একটি স্ট্রিংয়ে সংযুক্ত করে রাখে, এবং শেষে oss.str() ফাংশনের মাধ্যমে পুরো স্ট্রিংটি রিটার্ন করে।


৩. stringstream এর ব্যবহার

stringstream একটি যৌথ ক্লাস যা istringstream এবং ostringstream উভয়ের সুবিধা প্রদান করে। এটি স্ট্রিং থেকে ডেটা পড়া এবং লেখা উভয় কাজের জন্য ব্যবহৃত হয়।

উদাহরণ:

#include <iostream>
#include <sstream> // sstream ইনক্লুড করতে হবে
#include <string>

int main() {
    std::stringstream ss; // stringstream অবজেক্ট তৈরি

    ss << "42"; // স্ট্রিংয়ে ডেটা লেখা
    int number;
    ss >> number; // স্ট্রিং থেকে ডেটা পড়া

    std::cout << "The number is: " << number << std::endl;

    return 0;
}

এই উদাহরণে, stringstream একই স্ট্রিমের মধ্যে লেখা ও পড়ার কাজ করতে ব্যবহৃত হয়েছে, যা প্রায়শই ডেটা প্রক্রিয়াকরণে প্রয়োজন হয়।


স্ট্রিং স্ট্রিমের ব্যবহার ক্ষেত্রে

  • স্ট্রিং থেকে ডেটা পড়া: istringstream ব্যবহার করে একটি স্ট্রিং থেকে বিভিন্ন ডেটা টাইপে ডেটা পড়া যেতে পারে। যেমন স্পেস দিয়ে পৃথক করা মানগুলো পৃথকভাবে প্রক্রিয়া করা।
  • ফরম্যাটিং: ostringstream ব্যবহার করে ডেটা বিভিন্ন ফরম্যাটে সাজিয়ে স্ট্রিং আকারে সংরক্ষণ করা যায়।
  • কনভার্সন: স্ট্রিং থেকে সংখ্যা বা সংখ্যা থেকে স্ট্রিংয়ে রূপান্তর করতে istringstream এবং ostringstream উভয়ই কার্যকর।

উদাহরণ: স্ট্রিং থেকে ভিন্ন ডেটা টাইপে রূপান্তর

নিচের উদাহরণটি দেখায় কিভাবে একটি স্ট্রিং থেকে বিভিন্ন ডেটা টাইপে রূপান্তর করা যায়:

#include <iostream>
#include <sstream> // sstream ইনক্লুড করতে হবে
#include <string>

int main() {
    std::string str = "123 45.67 Hello";
    std::istringstream iss(str);

    int intValue;
    double doubleValue;
    std::string strValue;

    iss >> intValue >> doubleValue >> strValue;

    std::cout << "Integer: " << intValue << std::endl;
    std::cout << "Double: " << doubleValue << std::endl;
    std::cout << "String: " << strValue << std::endl;

    return 0;
}

এই উদাহরণে, istringstream স্ট্রিং str থেকে int, double, এবং string টাইপের ডেটা পৃথকভাবে পড়ে এবং সংশ্লিষ্ট ভেরিয়েবলে সংরক্ষণ করে। এটি স্ট্রিং থেকে ডেটা প্রসেস করার একটি সহজ উপায় প্রদান করে।


String Streams প্রোগ্রামারদের স্ট্রিং থেকে ডেটা প্রসেস করতে এবং ডেটাকে স্ট্রিংয়ে ফরম্যাট করতে সহায়ক একটি শক্তিশালী টুল, যা C++ এ ডেটা ম্যানিপুলেশনের কাজ সহজ করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...