یک برنامه C بنویسید که یک الگوی glob را از ورودی استاندارد بخواند و نام یک فایل متنی را از آرگومان خط فرمان دریافت کند و سپس همهٔ نامفایلهای داخل آن فایل را که با الگو مطابقت دارند با استفاده از fnmatch چاپ کند.
5.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:26 0.0
برای حل مسئله، فایل متنی را با fopen باز کنید و با fgets هر خط را (هر خط یک نام فایل فرض شود) بخوانید، نویسهٔ خاتمهٔ سطر را حذف کنید و سپس با تابع fnmatch (در ) نام فایل را در برابر الگو مقایسه کنید؛ در صورت تطابق آن را چاپ کنید. از بررسی خطاها هنگام باز کردن فایل و اندازهٔ بافر مناسب برای خواندن خطوط غفلت نکنید. میتوانید از flags مانند FNM_PATHNAME یا FNM_PERIOD بسته به رفتار موردنظر استفاده کنید و توجه داشته باشید که fnmatch نسبت به escape و کاراکترهای خاص حساس است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پایداری برنامه، بررسی کنید argc حداقل برابر با 2 باشد تا نام فایل از آرگومان خط فرمان دریافت شود. استفاده از fgets با بافر کافی و حذف نویسهٔ '\n' انتهایی هر خط ضروری است تا مقایسهٔ نام فایل با الگو درست انجام شود. وقتی با fnmatch کار میکنید میتوانید پرچمهایی مانند FNM_PATHNAME یا FNM_PERIOD را بسته به رفتار موردنظر فعال کنید و فراموش نکنید که escapeها و کاراکترهای خاص را لحاظ کنید. همچنین بهتر است خطاهای بازکردن فایل یا طول خط طولانی را مدیریت کنید و به اندازهٔ مناسب با آرایه بافر بخوانید.
گزارش