یک برنامه C بنویسید که یک الگوی glob را از ورودی استاندارد بخواند و نام یک فایل متنی را از آرگومان خط فرمان دریافت کند و سپس همهٔ نام‌فایل‌های داخل آن فایل را که با الگو مطابقت دارند با استفاده از fnmatch چاپ کند.

5.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:26

0.0

برای حل مسئله، فایل متنی را با fopen باز کنید و با fgets هر خط را (هر خط یک نام فایل فرض شود) بخوانید، نویسهٔ خاتمهٔ سطر را حذف کنید و سپس با تابع fnmatch (در ) نام فایل را در برابر الگو مقایسه کنید؛ در صورت تطابق آن را چاپ کنید. از بررسی خطاها هنگام باز کردن فایل و اندازهٔ بافر مناسب برای خواندن خطوط غفلت نکنید. می‌توانید از flags مانند FNM_PATHNAME یا FNM_PERIOD بسته به رفتار موردنظر استفاده کنید و توجه داشته باشید که fnmatch نسبت به escape و کاراکترهای خاص حساس است.

توسط پژوهشگر در 201 روز قبل ساعت 03:26
دسته بندی ها: C for beginner
reyhaneh در 201 روز قبل ساعت 06:24

برای پایداری برنامه، بررسی کنید argc حداقل برابر با 2 باشد تا نام فایل از آرگومان خط فرمان دریافت شود. استفاده از fgets با بافر کافی و حذف نویسهٔ '\n' انتهایی هر خط ضروری است تا مقایسهٔ نام فایل با الگو درست انجام شود. وقتی با fnmatch کار می‌کنید می‌توانید پرچم‌هایی مانند FNM_PATHNAME یا FNM_PERIOD را بسته به رفتار موردنظر فعال کنید و فراموش نکنید که escapeها و کاراکترهای خاص را لحاظ کنید. همچنین بهتر است خطاهای بازکردن فایل یا طول خط طولانی را مدیریت کنید و به اندازهٔ مناسب با آرایه بافر بخوانید.

گزارش

1 پاسخ

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

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