C语言实现控制台中光标随意移动
开始准备学习下C,新手哦~~
今天弄了个控制台程序,光标可以随意在DOS下移动~~
先放一张效果图,不过很丑,大家能不能看懂,哈哈,就是
I Love You.
代码注释都有,其实好多东西我都是从其他地方拷贝了一些代码,毕竟是新手,还是需要多向网上的一些大神学习的。
原理就是引入windows.h,首先是要获得输入的东西,然后通过判断:
1.方向键:执行上下左右的移动功能
2:回车键:执行换行的功能。
3.普通键:输入功能。
终点就是要获取到屏幕上的坐标,当按下了方向键以后,坐标值+1,或者减一,从而实现了光标的自由移动。
下面放代码。
#include <stdio.h>
#include <windows.h>
#include <conio.h>HANDLE hout;//获得输入
char getInput()
{int ch; //输入字符串COORD coord; //屏幕上的坐标CONSOLE_SCREEN_BUFFER_INFO csbi; //控制台屏幕缓冲区信息coord.X=10;coord.Y=10;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=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;}int main()
{char ch;hout=GetStdHandle(STD_OUTPUT_HANDLE);//从键盘获取输入,如果是方向键则执行方向功能,如果是回车键则换行,如果是字符则输出while(1){ch=getInput();printf("%c",ch);}getchar();}
转载于:https://www.cnblogs.com/kmsfan/p/3964810.html
C语言实现控制台中光标随意移动相关推荐
- c语言移动光标到指定坐标,C语言实现控制台中光标随意移动
开始准备学习下C,新手哦~~ 今天弄了个控制台程序,光标可以随意在DOS下移动~~ 先放一张效果图,不过很丑,大家能不能看懂,哈哈,就是 I Love You. 代码注释都有,其实好多东西我都是从其他 ...
- c语言控制台光标的坐标范围,C语言之实现控制台光标随意移动的实例代码
原理引入windows.h,首先是要获得输入的东西,然后通过判断: 1.方向键:执行上下左右的移动功能 2 .回车键:执行换行的功能. 3.普通键:输入功能. 终点就是要获取到屏幕上的坐标,当按下了方 ...
- 用坐标实现物体的移动c语言,C语言之实现控制台光标随意移动的实例代码
原理引入windows.h,首先是要获得输入的东西,然后通过判断: 1.方向键:执行上下左右的移动功能 2 .回车键:执行换行的功能. 3.普通键:输入功能. 终点就是要获取到屏幕上的坐标,当按下了方 ...
- java 控制台 移动光标_如何使控制台中光标移动到指定位置?
Its_forever package interfaces; import java.util.Scanner; public class Test { public static void mai ...
- C语言在控制台上实现鼠标操作的方法
文章目录 了解windows库函数 了解句柄 实现思路与代码 在制作面向用户系统时,我们往往需要设置除输入参数外更为灵活的操作方式,例如鼠标点击.按键按下(无阻塞输入)等:同时,我们需要制作更为精美的 ...
- C语言中控制printf的打印颜色实例及vt100的控制符
C语言中控制printf的打印颜色实例及vt100的控制符文档 收藏 转自:http://blog.csdn.net/evimacsl/archive/2010/01/18/5206836.aspx ...
- 在JavaScript控制台中包含jQuery
对于不使用jQuery的网站,是否有简便的方法将jQuery包含在Chrome JavaScript控制台中? 例如,在一个网站上,我想获取表中的行数. 我知道使用jQuery确实很容易. $('el ...
- python里进度条编程_Python实现控制台中的进度条
相信很多人在写一些简单的Python脚本的时候都希望能够在程序运行的过程中实现进度条的功能以便查看程序运行的速度或者进度. 我之前一直想实现这样一个东西,也查看了许多博客但是都找不到一个完美的解决方案 ...
- 怎样用C++在控制台中编写俄罗斯方块
我都没有在CSDN上写过东西,也不知道写什么好,下面就来讲诉一下我编的一个游戏吧.这是一个每个人小时候都玩过的游戏,也就是俄罗斯方块.我个人觉得俄罗斯方块这个游戏用MFC来编比较简单,而且我也编了一个 ...
最新文章
- 【转】monkeyrunner学习总结二:连接、安装、启动
- Python内置数据结构及其复杂度
- tomcat正常启动但是访问 404
- BZOJ2326 [HNOI2011]数学作业 【矩阵快速幂】
- TreeView控件二(递归算法)
- 模板类的析构函数如何写_顶尖文案如何写?这6大模板、29个方法,奥美大咖都在用!|优惠最后1天...
- txt文件可存储最大值_Verilog边码边学:十六进制文件读取$readmemh
- eclipse-java-2019-12-R-win32-x86_64分享
- loadrunner取出字符串的后面几位
- 判断一段程序是由C 编译程序还是由C++编译程序编译的
- 239.滑动窗口的最大值
- 咖说丨破碎的互联网下,加密技术正在恢复数据主权!
- 伺服电机编码器与转子磁极相位对齐方法
- RTX51 tiny——51MCU上的多任务操作系统(转)
- hmcl启动器怎么联机_HMCL 启动器教程 #1 安装启动器
- WordPress the_excerpt()截取摘要长度
- Navicat简单使用方法。
- 巧解决阿里云虚拟主机免费版被DDOS攻击问题
- 【深度学习】3-从模型到学习的思路整理
- 常微分方程 知识结构