یک برنامهٔ C++ بنویسید که مقدار شبیهسازیشدهٔ خواندهشده از یک سنسور را از ورودی بگیرد، در صورت خارج بودن از بازهٔ 0 تا 1023 یک std::out_of_range پرتاب کند و در تابع main آن را گرفته و پیام خطای مناسب را چاپ کند.
15.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 02:45 0.0
برای حل، تابعی مانند readSensor(value) بنویسید که مقدار را با if بررسی کرده و در صورت نامعتبر بودن throw std::out_of_range("پیام مناسب") انجام دهد؛ در main از try { ... } catch (const std::out_of_range &e) { std::cout
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
پیشنهاد میکنم پیش از انداختن استثنا ورودی را از نظر غیرعددی و خوانش صحیح نیز بررسی کنید (مثلاً چک کردن std::cin.fail یا پردازش رشته با std::stoi درون try/catch) تا خطای قابلفهمتری ارائه دهید. در پیام std::out_of_range مقدار نامعتبر و حدهای مجاز را ذکر کنید و حدها را بهصورت ثابت (const) تعریف کنید تا نگهداری کد آسانتر باشد. هنگام گرفتن استثنا آن را با const reference بگیرید و از e.what() برای چاپ پیام استفاده کنید. در نهایت اگر خروج از بازه شرایطی معمول و نه فوقالعاده است، بهتر است بهجای استثنا از مقادیر بازگشتی یا std::optional استفاده کنید تا هزینهٔ زمانی کاهش یابد.
گزارش