یک برنامهٔ C++ بنویسید که با استفاده از هدر رشتهٔ پیکربندی هندسهٔ پنجره به شکل '800x600+100+200' را پارس کند و چهار عدد (عرض، ارتفاع، X، Y) را به صورت جدا در خروجی چاپ نماید.
1.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:09 0.0
برای حل این مسئله میتوانید از هدر و کلاس std::istringstream استفاده کرده و کاراکترهای جداکننده ('x' و '+') را یا با خواندن با delimiters جدا کنید یا اول آنها را به فاصله تبدیل کرده و سپس با istringstream به ترتیب اعداد را با std::stoi بخوانید. در برنامه از هدرهای , , استفاده کنید و ورودی را به شکل رشته بگیرید، سپس با بررسی خطاهای stoi و وضعیت stream از صحت فرمت مطمئن شوید. این نوع پارس کردن برای برنامههای دسکتاپ (تنظیمات هندسه پنجره) و کاربردهای سادهٔ سیستمپردازی (خواندن فایلهای کانفیگ) مفید است؛ پیشنهاد میشود برای ایمنی بیشتر پیش از تبدیل، فضای اضافی را حذف کنید و خطاها را هندل نمایید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پایداری برنامه، پس از پارس کردن با istringstream وضعیت استریم را بررسی کنید و خطاهای stoi یا ورودی ناقص را مدیریت کنید. حذف فضای اضافی و تبدیل کاراکترهای 'x' و '+' به فاصلۀ ساده یا استفاده از delimiterها بهجای خواندن مستقیم با اعداد، کار پارس را مطمئنتر میکند. استفاده از try-catch برای stoi یا بررسی مقدارهای بازگشتی استریم، از کرش ناشی از دادهٔ نامعتبر جلوگیری میکند. در نهایت، برای ورودیهای نا معتبر مانند نبودن یکی از چهار عدد یا وجود کاراکتر غیرعدد، پیام خطای روشن و خروجی کنترلشده بدهید.
گزارش