如何使用 SetConsoleCursorPosition 函数

Posted

技术标签:

【中文标题】如何使用 SetConsoleCursorPosition 函数【英文标题】:How To Use SetConsoleCursorPosition Func 【发布时间】:2013-04-02 17:52:16 【问题描述】:

我刚刚用 c 编写了河内之塔的代码,我想用字符在图形模式下展示解决方案。

我想使用 windows.h 和 SetConsoleCursorPosition 函数在控制台中移动光标。

你能告诉我这个功能是否有效以及如何使用它吗?请举一些例子。

【问题讨论】:

【参考方案1】:

这里是一个如何调用SetConsoleCursorPosition函数的例子,取自cplusplus:

void GoToXY(int column, int line)

    // Create a COORD structure and fill in its members.
    // This specifies the new position of the cursor that we will set.
    COORD coord;
    coord.X = column;
    coord.Y = line;

    // Obtain a handle to the console screen buffer.
    // (You're just using the standard console, so you can use STD_OUTPUT_HANDLE
    // in conjunction with the GetStdHandle() to retrieve the handle.)
    // Note that because it is a standard handle, we don't need to close it.
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

    // Finally, call the SetConsoleCursorPosition function.
    if (!SetConsoleCursorPosition(hConsole, coord))
    
        // Uh-oh! The function call failed, so you need to handle the error.
        // You can call GetLastError() to get a more specific error code.
        // ...
    

您还可以通过查看 SDK 文档了解如何使用 Win32 函数。谷歌搜索函数名称通常会在第一次点击时找到相应的文档页面。 对于SetConsoleCursorPosition,页面为here,对于GetStdHandle,页面为here。

【讨论】:

次要问题:但每个人的谷歌搜索结果排序都不同,这取决于他们的搜索历史。 我几乎每天都会删除我的 cookie。 cplusplus?寻找有关 Win32 函数的信息的地方真是太奇怪了。 the documentation for the function he asks about 会有什么问题? 没有例子,这对初学者来说并不简单。但总的来说,您是对的,API 文档始终是一个很好的起点。 谢谢。我如何以图形方式使用它?我的意思是展示一些东西?在这里我们应该为河内塔采取行动。

以上是关于如何使用 SetConsoleCursorPosition 函数的主要内容,如果未能解决你的问题,请参考以下文章

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]

如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?

如何使用laravel保存所有行数据每个行名或相等

如何使用 Math.Net 连接矩阵。如何使用 Math.Net 调用特定的行或列?

WSARecv 如何使用 lpOverlapped?如何手动发出事件信号?