یک برنامهٔ ساده به زبان 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 جلوگیری می‌کند.

توسط پژوهشگر در 202 روز قبل ساعت 03:06
دسته بندی ها: C for beginner
arash در 202 روز قبل ساعت 07:31

این تمرین اهمیت مدیریت بافر خروجی در برنامه‌های تعاملی را نشان می‌دهد، زیرا پرامپت بدون newline چاپ می‌شود و fflush(stdout) خروجی را فوری می‌کند. پس از fgets باید newline انتهایی رشته را حذف کنید تا مقایسه با «exit» درست انجام شود. همچنین باید اندازه بافر را مشخص کرده و به بازگشت NULL از fgets به‌عنوان پایان ورودی/EOF توجه کنید تا از overflow جلوگیری شود. در حلقه، هر خط را چاپ کنید و تا رسیدن کاربر به «exit» به کار ادامه دهید.

گزارش

1 پاسخ

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

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