برنامهای بنویسید که با استفاده از تابع freopen از هِدر stdio.h، ورودی را از فایل "input.txt" به stdin وصل کرده، خطوط را میخواند و تعداد خطوط غیرخالی را در فایل "output.txt" چاپ کند.
4.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:25 0.0
در این برنامه از هِدر stdio.h و تابع freopen برای تغییر مسیر stdin و stdout استفاده کنید: ابتدا با freopen("input.txt","r",stdin) ورودی را به فایل ورودی منتقل کنید و در صورت شکست خطا را به stderr گزارش دهید، سپس با حلقهای مثل fgets هر خط را بخوانید و با بررسی وجود کاراکترهای غیرفاصله (مثل استفاده از isspace یا پیمایش رشته) خطهای غیرخالی را شمارش کنید. در پایان با freopen("output.txt","w",stdout) خروجی را به فایل مورد نظر بفرستید و شمارش را با printf چاپ کنید؛ رعایت بررسی مقادیر بازگشتی freopen و مدیریت سادهٔ خطاها از نکات مهم است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکتهٔ مهم این است که هنگام استفاده از freopen برای تغییر مسیر stdin و stdout، نتیجهٔ بازگشت تابع را بررسی کنید و در صورت شکست، پیام خطا را به STDERR بنویسید. برای تشخیص خطوط غیرخالی میتوانید هر خط را با fgets بخوانید و وجود کاراکتر غیر فاصله را با پیمایش کاراکترها یا استفاده از isspace بررسی کنید. سپس با freopen("output.txt","w",stdout) خروجی را به فایل مقصد بفرستید و شمارش خطوط غیرخالی را با printf چاپ کنید. همچنین به مدیریت خطاها و بازگرداندن منابع در صورت نیاز توجه کنید.
گزارش