در C++ یک تابع بنویسید که یک رشتهٔ wide از نوع wchar_t که یک عدد اعشاری در نمایش علمی (مثال L"3.14e-2") را دارد گرفته و مقدار عددی متناظر (double) را بازگرداند.
1.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:26 0.0
برای حل از هدر و تابع استاندارد wcstod استفاده کنید: ابتدا فضاهای اطراف را حذف کنید، سپس wcstod را صدا بزنید و با استفاده از پارامتر endptr اعتبار ورودی را بررسی کنید تا مطمئن شوید کل رشته تبدیل شده است؛ توجه داشته باشید که تنظیم locale ممکن است روی جداکنندهٔ اعشاری اثر بگذارد. این روش برای ورودیهای علمی مفید است و در کاربردهای سادهٔ محاسبات عددی و تبدیل رشتهای در محیطهای مرتبط با کامپایلر/مفسر یا محاسبات علمی مناسب است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای تبدیل یک رشتهٔ wide از نوع wchar_t که عددی به صورت علمی مانند L"3.14e-2" دارد به مقدار double از wcstod استفاده کنید. ابتدا فضاهای اطراف را با حذف فضای ابتدایی و انتهایی رشته آماده کنید و سپس wcstod را فراخوانی کنید. با استفاده از مقدار endptr بررسی کنید که کل رشته تبدیل شده باشد و هیچ کاراکتری پس از پایان عدد باقی نمانده باشد. همچنین locale ممکن است جداکنندهٔ اعشار را تغییر دهد؛ برای نتیجهٔ پایدار میتوانید locale را به "C" تنظیم کنید یا مدیریت locale را به طور محدود انجام دهید.
گزارش