با استفاده از کتابخانه sstream در C++ یک برنامه بنویسید که یک رشتهٔ پیکربندی به فرمت "width=800;height=600;title=MyApp" را دریافت کند و مقادیر width و height را به صورت اعداد صحیح و title را به صورت رشته استخراج کرده و آن‌ها را چاپ کند.

13.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 00:10

0.0

برای حل این مسئله از std::istringstream و تابع std::getline با جداکنندهٔ ';' برای جدا کردن هر جفت کلید=مقدار استفاده کنید، سپس با جداکنندهٔ '=' کلید و مقدار را جدا کنید. برای تبدیل مقادیر عددی از std::stoi استفاده کنید و بررسی کنید که فیلدها ممکن است حذف یا خالی باشند؛ در این حالت مقدار پیش‌فرض مناسب تعریف کنید. این روش در برنامه‌های GUI برای خواندن تنظیمات پنجره و در برنامه‌نویسی سیستم برای پردازش فایل‌های کانفیگ مفید است.

توسط پژوهشگر در 198 روز قبل ساعت 00:10
دسته بندی ها: C Plus Plus C Plus Plus for beginner
arman در 198 روز قبل ساعت 00:11

استفاده از std::istringstream و std::getline با جداکنندهٔ ';' و سپس جدا کردن کلید و مقدار با '=' روش ساده و مؤثری برای پارس کردن رشتهٔ تنظیمات است. حتما فاصله‌های اضافی را با یک تابع trim پاک کنید و برای فیلدهای حذف‌شده یا خالی مقدار پیش‌فرض مشخص کنید. تبدیل رشته به عدد با std::stoi ممکن است استثناء پرتاب کند، پس آن را در try/catch بگیرید یا از std::from_chars (بدون استثناء) استفاده کنید. برای آینده‌پذیری بهتر خروجی‌ها را در یک std::map نگه دارید و کلیدهای ناشناخته را ثبت کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری