یک برنامه C بنویسید که با استفاده از stdio.h و تابع fopen یک فایل متنی را باز کند، محتوای آن را خطبهخط بخواند و تعداد خطوط و تعداد کل حروف (بهجز کاراکترهای جدید خط) را محاسبه کرده و نتایج را در یک فایل خروجی بنویسد.
6.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:56 0.0
برای حل این مسئله از توابع stdio.h مانند fopen، fgets، fprintf و fclose استفاده کنید؛ فایل ورودی را با حالت "r" و فایل خروجی را با حالت "w" باز کنید و بلافاصله بعد از fopen مقدار بازگشتی را برای NULL بررسی کنید و در صورت خطا از perror استفاده نمایید. با استفاده از یک بافر ثابت (مثلاً 1024 کاراکتر) خطوط را با fgets بخوانید، طول هر خط را با strlen یا شمارش دستی محاسبه کنید و شمارش خطوط را افزایشی کنید؛ در پایان نتایج را با fprintf در فایل خروجی بنویسید و هر دو فایل را fclose کنید. این تمرین پایهای برای درک I/O فایل در برنامهنویسی سیستمها و مفاهیمی مثل مدیریت فایل و خطایابی در توسعه سیستمعاملها است—به بافر بندی و بررسی خطاها توجه ویژه داشته باشید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته مهم این است که پس از fopen مقدار بازگشتی را بررسی کنید و در صورت NULL با perror خطا را گزارش دهید. اگر خطوط طولانیتر از بافر هستند، باید با fgets تا رسیدن به '\n' یا EOF حلقه بزنید و تنها هنگامی که '\n' دیده شد، آن خط را بهعنوان یک خط کامل بشمارید. برای محاسبه طول خط، طول بافر را با strlen محاسبه کنید اما اگر کاراکتر newline در پایان chunk وجود دارد آن را از طول کم کنید؛ این کار را در هر chunk انجام دهید تا خطوط بهدرستی شمارده شوند. در پایان نتیجهها را با fprintf به فایل خروجی بنویسید و هر دو فایل را با fclose ببندید.
گزارش