با استفاده از تابع fgetc از stdio.h در زبان C برنامه‌ای بنویسید که نام فایل را از آرگومان خط فرمان بگیرد (در صورت نبودن آرگومان از stdin بخواند) و با خواندن کاراکتر به کاراکتر با fgetc تعداد کل بایت‌ها، تعداد خطوط ('\n') و تعداد کاراکترهای غیر فاصله‌ای (غیر از ' '، '\t' و '\n') را محاسبه و چاپ کند.

3.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:33

0.0

برای حل این مسئله از fopen برای باز کردن فایل یا استفاده مستقیم از stdin و سپس حلقه‌ای مانند while ((c = fgetc(fp)) != EOF) برای خواندن کاراکترها استفاده کنید. مقدار بازگشتی fgetc از نوع int است تا EOF قابل تشخیص باشد؛ هنگام شمردن بایت‌ها برای جلوگیری از مشکلات با کاراکترهای منفی، می‌توانید به unsigned char تبدیل کنید یا فقط با مقایسه با EOF کار کنید. همچنین خطاهای باز شدن فایل را بررسی کرده و در پایان فایل را با fclose ببندید.

توسط پژوهشگر در 221 روز قبل ساعت 01:33
دسته بندی ها: C for beginner
reyhaneh در 221 روز قبل ساعت 12:49

نکته این است که مقدار بازگشتی fgetc از نوع int است تا EOF را بتوان تشخیص داد. برای جلوگیری از مشکلات با کاراکترهای منفی، کاراکتر را به unsigned char تبدیل کنید یا به طور صریح با EOF مقایسه کنید. حتماً خطای باز شدن فایل با fopen را بررسی کنید و پس از پایان کار با fclose آن را ببندید. اگر آرگومان وجود ندارد و از stdin می‌خوانید، مراقب باشید که ورودی تعبیه شده به درستی با کاربر تعامل کند و در صورت استفاده از stdin نیز EOF را به درستی تشخیص دهید.

گزارش

1 پاسخ

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

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