PDA

View Full Version : سوال: نحوه ی پاک کردن صفحه نمایش خروجی



ali saemi
یک شنبه 27 دی 1394, 17:56 عصر
ببخشید می خواستم بدونم آیا دستوری در زبان ++C وجود دارد که با استفاده از آن بتونم قسمتی از صفحه نمایشگر خروجیی رو به طور دلخواه (مثلا ۵ خط قبل از آخرین خط نوشته شده) پاک کنم؟؟؟
اگه وجود داره چیه؟
دستور system("cls"); برای پاک سازی کل صفحه نمایش به کار می رود ولی من دنبال کدی می گردم که همه ی صفحه خروجی رو پاک نکنه و فقط اون قسمتی رو که ما بهش می گیم پاک کنه.
اگه می دونین لطفا بهم بگین.خواهش می کنم!!!

Poores
دوشنبه 28 دی 1394, 01:26 صبح
با استفاده از تابع gotoxy میشه همچین کاری کرد


#include <windows.h>

void gotoxy( int column, int line )
{
COORD coord;
coord.X = column;
coord.Y = line;
SetConsoleCursorPosition(
GetStdHandle( STD_OUTPUT_HANDLE ),
coord
);
}



به اینصورت که شما مختصات اون جایی رو که میخواین پاک کنین رو اول بهش میدین ، مثلا میخواین خط 14 رو حذف کنین :

gotoxy(0,14);

و بعد به میزان لازم space چاپ میکنین.

در واقع تابع gotoxy محل cursor (نشانگر) رو تغییر میده و مثلا اگه بنویسین

gotoxy(10,10);
cout << "HI";

در خط دهم ، کارکتر دهم صفحه کنسول عبارت "HI" رو چاپ میکنه ، حالا اگه در این مختصات قبلا چیزی نوشته شده باشه روی اون نوشته قبلی این عبارت رو مینویسه ، پس ما با چاپ space یجورایی محلی رو که میخوایم ، پاک میکنیم.