c++ - 如何在 C++ 控制台应用程序中控制光标位置?

标签 c++ cursor console-application

我应该为学校项目创建一个控制台应用程序,它是关于数独游戏的,所以问题是我没有发现算法有任何困难,但我想知道是否可以用 c++ 绘制完整的数独表并将空方 block 作为“数据”输入位置,以便用户可以使用箭头键将光标移动到特定数字的位置,以用适当的数字填充它。 有没有办法这样做?

最佳答案

这取决于您的操作系统/编译器。例如,在 VC++ 中,您可以使用 this示例可以找到here .

#include <windows.h>
int main(){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos = {3, 6};
SetConsoleCursorPosition(hConsole, pos);
WriteConsole(hConsole, "Hello", 5, NULL, NULL);
return 0;
}

如果你想在Linux中使用g++编译器来实现,你可以使用特殊的库,例如curses或者编写你自己的实现(会有点困难)。例如,只需将光标放在所需的位置,您可以使用:

void gotoxy(int x,int y)    
{
    printf("%c[%d;%df",0x1B,y,x);
}
void clrscr(void)
{
    system("clear");
}
int main() {    
    int x=10, y=20;
    clrscr();
    gotoxy(x,y);
    printf("Hello World!");
}

关于c++ - 如何在 C++ 控制台应用程序中控制光标位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54250401/

相关文章:

C++将整数 vector 转换为整数

c++ - Qt从文件中删除一行

sql - 如何在 SQL 中的循环中进行循环,类似于 for-each 循环?

html - 游标类型指针是否已弃用?

c++ - 控制台应用程序控制台窗口 - Visual C++

c# - .NET Core 控制台应用程序的 ASP.NET Core 配置

c++ - 从深度图中绘制表面的 3d

C++ - 从另一个 Wave 文件创建一个 Wave (.Wav) 文件,但带有自定义 header

perl - 如何将光标移回终端中的一个位置?

C# 控制台应用程序在预定时间发送电子邮件