یک برنامهٔ ساده به زبان C بنویسید که در یک حلقه یک پرامپت (بدون newline) چاپ کند، فوراً خروجی را با fflush(stdout) فلش کند، سپس ورودی کاربر را با fgets بخواند و تا دریافت "exit" ادامه دهد و هر ورودی را چاپ کند.
11.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 03:06 0.0
برای حل این مسئله از stdio.h استفاده کنید؛ پرامپت را با printf بدون \n چاپ کرده و برای اطمینان از نمایش فوری از fflush(stdout) استفاده کنید، سپس با fgets ورودی را بخوانید و نویسهٔ خط جدید را حذف کنید؛ حلقه را تا زمانی که کاربر "exit" وارد نکرده ادامه دهید. این تمرین نشاندهندهٔ مدیریت بافر خروجی در برنامههای تعاملی (مفید در Systems Programming/OS development) است؛ دقت کنید که fgets اندازهٔ بافر را کنترل میکند و از overflow جلوگیری میکند.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
این تمرین اهمیت مدیریت بافر خروجی در برنامههای تعاملی را نشان میدهد، زیرا پرامپت بدون newline چاپ میشود و fflush(stdout) خروجی را فوری میکند. پس از fgets باید newline انتهایی رشته را حذف کنید تا مقایسه با «exit» درست انجام شود. همچنین باید اندازه بافر را مشخص کرده و به بازگشت NULL از fgets بهعنوان پایان ورودی/EOF توجه کنید تا از overflow جلوگیری شود. در حلقه، هر خط را چاپ کنید و تا رسیدن کاربر به «exit» به کار ادامه دهید.
گزارش