আমি প্রিন্টএফ মোড়তে চেয়েছিলাম এবং এখানে একটি সহায়ক উত্তর পেয়েছি:
কীভাবে প্রিন্টফ / স্প্রিন্টেফে চলক সংখ্যক আর্গুমেন্ট পাস করতে হয়
আমি পারফরম্যান্সে মোটেও আগ্রহী ছিলাম না (আমি নিশ্চিত যে এই কোডের টুকরোটি বিভিন্ন উপায়ে উন্নত করা যেতে পারে, নিখরচায় অনুভব করুন :)), এটি কেবল সাধারণ ডিবাগপ্রিন্টিংয়ের জন্য তাই আমি এটি করেছি:
//Helper function
std::string osprintf(const char *fmt, ...)
{
va_list args;
char buf[1000];
va_start(args, fmt);
vsnprintf(buf, sizeof(buf), fmt, args );
va_end(args);
return buf;
}
যা আমি এর পরে ব্যবহার করতে পারি
Point2d p;
cout << osprintf("Point2d: (%3i, %3i)", p.x, p.y);
instead of for example:
cout << "Point2d: ( " << setw(3) << p.x << ", " << p.y << " )";
সি ++ অস্ট্রিমগুলি কিছু দিক থেকে সুন্দর তবে আপনি যদি কিছু ছোট স্ট্রিং যেমন বন্ধনী, কলোন এবং সংখ্যার মধ্যে comোকানো কমা দিয়ে এমন কিছু মুদ্রণ করতে চান তবে কার্যত ভয়ঙ্কর হয়ে ওঠে।