原理引入windows.h,首先是要获得输入的东西,然后通过判断:

1.方向键:执行上下左右的移动功能

2:回车键:执行换行的功能。

3.普通键:输入功能。

终点就是要获取到屏幕上的坐标,当按下了方向键以后,坐标值+1,或者减一,从而实现了光标的自由移动。

//C语言实现控制台中光标随意移动
#include <stdio.h>
#include <windows.h>
#include <conio.h> HANDLE hout;
//获得输入
char getInput()
{
int ch; //输入字符串 COORD coord; //屏幕上的坐标
CONSOLE_SCREEN_BUFFER_INFO csbi; //控制台屏幕缓冲区信息 coord.X=;
coord.Y=; ch=getch(); //0x0d表示回车,0XE0表示上下左右等键的键码
while(ch==0xE0||ch==0x0d)
{
GetConsoleScreenBufferInfo(hout,&csbi);
coord.X=csbi.dwCursorPosition.X; //得到坐标X的值
coord.Y=csbi.dwCursorPosition.Y; //得到坐标Y的值
//如果是回车
if(ch==0x0d)
{
coord.X=;
coord.Y++;
SetConsoleCursorPosition(hout,coord);
break;
}
ch=getch();
//上
if(ch==0x48)
{
if(coord.Y!=)coord.Y--;
}
//下
else if(ch==0x50)
{
coord.Y++;
}
//左
else if(ch==0x4b)
{
if(coord.X!=){coord.X--;}
}
//右
else if(ch==0x4d)
{
if(coord.X!=)coord.X++;
else
{
coord.X=;
coord.Y++;
}
}
SetConsoleCursorPosition(hout,coord);
ch=getch();
}
return ch;
}
int main()
{
char ch;
hout=GetStdHandle(STD_OUTPUT_HANDLE);
//从键盘获取输入,如果是方向键则执行方向功能,如果是回车键则换行,如果是字符则输出
while()
{
ch=getInput();
printf("%c",ch);
}
getchar();
}

原文:C语言实现控制台中光标随意移动

最新文章

  1. 使用PowerShell 监控运行时间和连接情况
  2. cocos2d-x打飞机实例总结
  3. expr
  4. IO - IOUtils
  5. Essential C++ 学习笔记02--Array/Vector 与指针
  6. LaTex希腊字母
  7. DES加密深度优化——随机生成加密字符串
  8. 五、RDD持久化
  9. 使用 Buildot 实现持续集成
  10. 关于MySql中自增长id设置初始值
  11. 从一个国内普通开发者的视角谈谈Sitecore
  12. SVN的使用说明
  13. ORM版学员管理系统 2
  14. 基于LVM卷的MYSQL快照恢复
  15. luogu P4931 情侣?给我烧了!
  16. 11-部署Heapster插件
  17. 安装MySQL和其他包
  18. 【liunx】sftp常用命令
  19. linux下常见软件安装
  20. Linkedin工程师是如何优化他们的Java代码的

热门文章

  1. UCloud内核热补丁技术揭秘
  2. C\C++拾遗------C#程序员重温C\C++之要点
  3. 【转】关于 hashCode() 你需要了解的 3 件事
  4. bzoj3917: [Baltic2014]sequence
  5. mysql的主从配置以及主主配置
  6. KB975517 &quot;The update does not apply to your system&quot;
  7. [platform]linux platform device/driver(一)--Driver是如何找到对应的device
  8. C#程序集编译输出XML文档的作用
  9. PLSQL_PLSQL读和写XML文件方式(案例)
  10. kuangbin RMQ