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