#include<stdio.h>
#include<windows.h>
#include<conio.h>
HANDLE hout;
// 从键盘获取输入,如果是方向键则前进或后退,如果是回车键则换行,如果是字符则输出
char GetInput()
{
int ch;
COORD coord;
CONSOLE_SCREEN_BUFFER_INFO csbi;
ch=getch();
while(ch==0xE0 || ch==0x0d)
{
GetConsoleScreenBufferInfo(hout,&csbi);
coord.X=csbi.dwCursorPosition.X;
coord.Y=csbi.dwCursorPosition.Y;
if(ch==0x0d) // 回车
{
coord.X=0;
coord.Y++;
SetConsoleCursorPosition(hout,coord);
break;
}
ch=getch();
if(ch==0x48) // 上
{
if(coord.Y!=0)coord.Y--;
}
else if(ch==0x50) // 下
{
coord.Y++;
}
else if(ch==0x4b) // 左
{
if(coord.X!=0)coord.X--;
}
else if(ch==0x4d) // 右
{
if(coord.X!=79)coord.X++;
else {
coord.X=0;
coord.Y++;
}
}
SetConsoleCursorPosition(hout,coord);
ch=getch();
}
return ch;
}
void SetCur(short x,short y) // 设置光标位置
{
COORD coord;
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(hout,coord);
}
void main()
{
char ch;
hout=GetStdHandle(STD_OUTPUT_HANDLE);
//从键盘获取输入,如果是方向键则执行方向功能,如果是回车键则换行,如果是字符则输出
while(1)
{
ch=GetInput();
printf("%c",ch);
}
}
windows控制台下光标移动
最新推荐文章于 2024-10-25 15:20:25 发布