**gotoxy教學**
---
```cpp=
#include <bits/stdc++.h>
#include <windows.h>
using namespace std;
int main()
{
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
COORD crd;
crd.X = 10;
crd.Y = 5.5;
SetConsoleCursorPosition(hCon,crd);
cout<<"TEST";
return 0;
}
```
----
`HANDLE` 在定義文件中為`void*`
而在C++中void可以被強轉成任何型態的指針
在這裡是指處理程式
也就是執行程式時出現的小黑框
----
而`GetStdHandle(STD_OUTPUT_HANDLE)` 就是用來獲取小黑框指標的函數,所以照抄就行
所以
`HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE)`
其實很像`int a = 5`
(一樣是宣告變數)
---
`COORD`
----
觀察一開始的程式
其實可以發現COORD是一種資料型態
在windwos.h中就是用來處理座標
而數字可為double及int
----
`SetConsoleCursorPosition(hCon,crd);`
經過以上的基本知識,這個函數也就不難理解了
Cursor就是指游標
設定在此console裡面游標的位置就是此函數的功能
---
其他函數
----
```cpp=
SetConsoleTitle("改標題");
// hide console cursor
CONSOLE_CURSOR_INFO cci;
cci.dwSize = 1;//游標大小(百分比)
cci.bVisible = FALSE;//游標可見度
SetConsoleCursorInfo(hConsole, &cci);
```
---
範例
```cpp=
#include <bits/stdc++.h>
#include <windows.h>
using namespace std;
int main()
{
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
COORD crd;
SetConsoleTitle("87878787");
// hide console cursor
CONSOLE_CURSOR_INFO cci;
//cci.dwSize = 10;//游標大小(百分比)
cci.bVisible = TRUE;//游標可見度
SetConsoleCursorInfo(hCon, &cci);
int n;
while(cin>>n){
cout<<n<<"\n";
}
return 0;
}
```
{"contributors":"[{\"id\":\"04b05e67-b6a9-4c04-9235-c66acad9fe35\",\"add\":1275,\"del\":3}]","title":""}