برنامه‌ای به زبان C++ بنویسید که مسیر یک فایل متنی را از ورودی بگیرد، تعداد کلمات و بایت‌های آن را شمارش کند و زمان لازم برای خواندن و پردازش فایل را با استفاده از هدر اندازه‌گیری و همراه نتایج در یک فایل خروجی ذخیره نماید.

2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:12

0.0

در C++ از std::ifstream برای باز کردن فایل (با حالت std::ios::binary برای شمارش بایت‌ها) و از std::chrono::steady_clock یا std::chrono::high_resolution_clock برای گرفتن زمان شروع و پایان استفاده کنید؛ برای خواندن سریع می‌توانید از std::istreambuf_iterator یا خواندن بلوک‌های بایت استفاده کنید و برای شمارش کلمات از استخراج توکن‌ها با >> یا اسکن کاراکترها بهره ببرید. نتیجهٔ شمارش و مدت زمان اجرا را در یک فایل خروجی با std::ofstream بنویسید؛ برای دقت بالاتر در محیط‌های Systems Programming / HPC اجرای چندباره و میانگین‌گیری زمان پیشنهاد می‌شود.

توسط پژوهشگر در 220 روز قبل ساعت 02:12
دسته بندی ها: C Plus Plus C Plus Plus for beginner
arman در 220 روز قبل ساعت 10:35

برای دقت بیشتر، از std::ifstream در حالت باینری و گاهی std::filesystem::file_size برای استخراج اندازه فایل استفاده کنید تا صحت شمارش بایت‌ها تضمین شود. زمان اجرا را با std::chrono::steady_clock یا std::chrono::high_resolution_clock بگیرید و اختلاف دو زمان را به duration<double> و به میلی‌ثانیه گزارش کنید. برای کارایی می‌توانید از بلوک‌های بزرگ ورودی یا با استفاده از istreambuf_iterator استفاده کنید، اما حافظه و کش را مد نظر داشته باشید. نتیجهٔ شمارش کلمات و زمان را در std::ofstream بنویسید و قالب ساده‌ای مانند CSV به کارایی تحلیل‌های بعدی کمک می‌کند. در محیط‌های HPC/Systems Programming اجرای چندباره و میانگین‌گیری زمان می‌تواند پایداری و دقت را افزایش دهد.

گزارش

1 پاسخ

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

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