[英]gotoxy() user defined function in c++
我在課程中已經讀到gotxy()是預定義的函數,但不適用於Microsoft Visual 2013.so,我進行了一些搜索,得到了可以正常工作的那段代碼,但是我必須理解它。詳細解釋。
void gotoxy(int x, int y)
{
HANDLE hConsoleOutput;
COORD dwCursorPosition;
cout.flush();
dwCursorPosition.X = x;
dwCursorPosition.Y = y;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hConsoleOutput, dwCursorPosition);
}
我認為,您的課程材料已經過時了約30年,並且針對的是DOS,甚至不是Windows 1.0。
無論如何,您現在擁有的功能是仍然可以在現代Windows系統上使用的實現,即使它已經過期約20年了。
第一行定義HANDLE hConsoleOutput;
。 它無法初始化變量,應按以下方式完成: HANDLE hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
。 稍后需要此句柄。
第二行定義坐標位置COORD dwCursorPosition;
。 同樣的問題,應該已經初始化了: COORD dwCursorPosition = { x,y };
cout.flush()
確保在調用之前將所有舊輸出寫入舊光標位置。
接下來的三個語句將修復未初始化的變量,如果正確完成,則不需要該語句。 最后,最后一個調用完成了告訴Windows接下來要打印的位置的實際工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.