📜  c++ 获取光标位置控制台 - C++ (1)

📅  最后修改于: 2023-12-03 15:29:53.081000             🧑  作者: Mango

C++ 获取光标位置控制台

在 C++ 中,我们可以使用 Windows API 来获取控制台中光标的位置。控制台窗口中的字符是以一个二维字符数组表示的,我们可以通过调用 GetConsoleScreenBufferInfo 函数来获得控制台窗口的信息,包括窗口的大小和光标的位置。下面是一个示例代码:

#include <iostream>
#include <windows.h>

int main()
{
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
    int row = csbi.dwCursorPosition.Y;
    int col = csbi.dwCursorPosition.X;
    std::cout << "光标位置:行 " << row << ",列 " << col << std::endl;
    return 0;
}

在这个示例中,我们首先声明了一个 CONSOLE_SCREEN_BUFFER_INFO 类型的变量 csbi,用于保存控制台窗口的信息。接着,我们调用 GetConsoleScreenBufferInfo 函数,将控制台窗口的句柄和 csbi 变量的地址作为参数传递,以获取控制台窗口的信息。最后,我们从 csbi 变量中获取了光标的行列位置,并将其输出到控制台中。

以上就是获取控制台光标位置的基本方法,你可以根据自己的需要对其进行扩展和改进。

参考资料