یک برنامهٔ C بنویسید که بدون استفاده از stdio.h با فراخوانی‌های سیستمی از ورودی استاندارد داده بخواند و مانند دستور wc تعداد خطوط، کلمات و کاراکترها را چاپ کند.

3.0 بازدید آخرین ویرایش در 224 روز قبل ساعت 23:45

0.0

برای حل این مسئله از توابع سطح پایین POSIX مثل read() و write() (قرار گرفته در unistd.h) استفاده کنید؛ حلقه‌ای بنویسید که داده‌ها را با بافر مشخص می‌خواند تا زمانی که read برابر صفر شود. تعداد کاراکترها را با جمع طول بافر، تعداد خطوط را با شمارش '\n' و تعداد کلمات را با پیگیری وضعیت in_word و استفاده از isspace() (از ctype.h) محاسبه کنید. برای چاپ خروجی به جای printf از write() استفاده کنید و اگر نیاز به تبدیل عدد به رشته دارید یک تابع سادهٔ itoa بنویسید؛ در نظر داشته باشید که کلمه ممکن است بین دو خواندن بافر قطع شود، پس وضعیت in_word را حفظ کنید.

توسط پژوهشگر در 224 روز قبل ساعت 23:45
دسته بندی ها: C for beginner
sara در 223 روز قبل ساعت 17:48

برای جلوگیری از از دست رفتن بخشی از واژه بین بافرها، وضعیت in_word را بین خواندن‌ها حفظ کنید و در خواندن بعدی با همان حالت ادامه دهید. استفاده از isspace() برای تشخیص فضاها، تب و newline به درستی واژه‌ها و خطوط را مشخص می‌کند. شمارش کاراکترها را با جمع طول بافرها، خطوط را با شمارش '\n' و واژه‌ها را با تشخیص ورود به حالت درون واژه انجام دهید. خروجی را با write بنویسید و اگر لازم شد، یک تابع ساده itoa بنویسید تا عددها به رشته تبدیل شده و چاپ شوند.

گزارش

1 پاسخ

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

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