ধরা যাক তিনটি double মান দেওয়া আছে। আমাদের এগুলো নির্দিষ্ট ফরম্যাটে প্রিন্ট করতে হবে:
- প্রথম মানের পূর্ণসংখ্যা অংশ হেক্সাডেসিম্যাল ফরম্যাটে (ছোট হাতের অক্ষর)
- দ্বিতীয় মান দুটি দশমিকস্থান পর্যন্ত, সাইনসহ (+/-), ডানে জাস্টিফাইড, ১৫ ক্যারেক্টার প্রস্থ, বাঁয়ের খালি জায়গা '_' দিয়ে প্যাড করা
- তৃতীয় মান ৯টি দশমিকস্থান পর্যন্ত সায়েন্টিফিক নোটেশনে
উদাহরণস্বরূপ, ইনপুট 256.367, 5783.489, 12.5643295643 হলে আউটপুট হবে:
0x100 _______+5783.49 1.256432956E+01
সমাধানের ধাপসমূহ
- প্রথম মান: hex, showbase, nouppercase, left ম্যানিপুলেটর ব্যবহার করুন
- দ্বিতীয় মান: right, fixed, setw(15), setfill('_'), setprecision(2), showpos ব্যবহার করুন
- তৃতীয় মান: setprecision(9), scientific, uppercase, 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