C++如何让光标移动
刚接触c++不久,需要做一个数独的program,要求用键盘方向键控制光标上下左右移动来填写数独空位,我先做了个关于光标的,但在debug里无论如何都移动不了,求大神解答...
刚接触c++不久,需要做一个数独的program,要求用键盘方向键控制光标上下左右移动来填写数独空位,我先做了个关于光标的,但在debug里无论如何都移动不了,求大神解答。
#include<stdio.h>
#include<windows.h>
include<conio.h>
#define UP 0x4800
#define DOWN 0x5000
#define LEFT 0x4b00
#define RIGHT 0x4d00void
gotoxy(int x, int y)
{COORD coord;coord.X = x;coord.Y = y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);}
void main()
{int x=40;int y=40;gotoxy(x,y);char key;key=getch();do
{
if(key==UP)
{y++;gotoxy(x,y);
}
else if(key==DOWN){y--;gotoxy(x,y);
}
else if(key==LEFT)
x--;gotoxy(x,y);}
else if(key==RIGHT)
{
x++;gotoxy(x,y);
}
}while(1);
}
粘贴的时候也许少粘贴了几个#,见谅啊 展开
#include<stdio.h>
#include<windows.h>
include<conio.h>
#define UP 0x4800
#define DOWN 0x5000
#define LEFT 0x4b00
#define RIGHT 0x4d00void
gotoxy(int x, int y)
{COORD coord;coord.X = x;coord.Y = y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);}
void main()
{int x=40;int y=40;gotoxy(x,y);char key;key=getch();do
{
if(key==UP)
{y++;gotoxy(x,y);
}
else if(key==DOWN){y--;gotoxy(x,y);
}
else if(key==LEFT)
x--;gotoxy(x,y);}
else if(key==RIGHT)
{
x++;gotoxy(x,y);
}
}while(1);
}
粘贴的时候也许少粘贴了几个#,见谅啊 展开
2个回答
展开全部
1、可以使用SetCursorPos函数
函数功能:该函数把光标移到屏幕的指定位置。如果新位置不在由 ClipCursor函数设置的屏幕矩形区域之内,则系统自动调整坐标,使得光标在矩形之内。
函数原型:BOOL SetCursorPos(int X,int Y);
参数: X:指定光标的新的X坐标,以屏幕坐标表示。 Y:指定光标的新的Y坐标,以屏幕坐标表示。
返回值:如果成功,返回非零值;如果失败,返回值是零,若想获得更多错误信息,请调用GetLastError函数。
2、例如:
SetCursorPos( x,y ); 移动鼠标到x,y位置
mouse_event( MOUSEEVENTF_LEFTDOWN, x,y,0,0 ); 左键按下
mouse_event( MOUSEEVENTF_RIGHTDOWN, x,y,0,0 ); 右键按下
函数功能:该函数把光标移到屏幕的指定位置。如果新位置不在由 ClipCursor函数设置的屏幕矩形区域之内,则系统自动调整坐标,使得光标在矩形之内。
函数原型:BOOL SetCursorPos(int X,int Y);
参数: X:指定光标的新的X坐标,以屏幕坐标表示。 Y:指定光标的新的Y坐标,以屏幕坐标表示。
返回值:如果成功,返回非零值;如果失败,返回值是零,若想获得更多错误信息,请调用GetLastError函数。
2、例如:
SetCursorPos( x,y ); 移动鼠标到x,y位置
mouse_event( MOUSEEVENTF_LEFTDOWN, x,y,0,0 ); 左键按下
mouse_event( MOUSEEVENTF_RIGHTDOWN, x,y,0,0 ); 右键按下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询