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来编比较简单,而且我也编了一个 ...
最新文章
- 最火的前端开发框架Bootstrap使用教程学习!
- Mac Appium 环境配置
- LED 模板驱动程序的改造:总线设备驱动模型
- pandas 笔记:聚合函数agg
- C# 利用.NET 升级助手将.NET Framework项目升级为.NET 6
- 二维GROUP BY
- 马桶怎么清洗才干净无异味?
- vim剪切指定行_10 分钟上手 Vim,常用命令大盘点
- 绿盟面试题事件有疑 大家认清类似事件正规方式
- 在多label 的代码里面添加augmentation功能遇到的问题
- 三菱modbusRTU通讯实例_三菱FX5U以太网通讯功能有哪些?
- FPGA数字信号处理(十七)多级CIC滤波器Verilog设计
- 均匀分布的期望和方差的推导_概率论中均匀分布的数学期望和方差该怎么求啊?...
- 网易云歌单信息爬取及数据分析(1)爬虫部分
- 物联网(IOT)之常见物联网通信技术概览-无线篇①
- word页眉添加横线与删除横线
- 2021-02-28 Matlab优化拟合曲线
- 《五子棋大师》技术支持
- 根据commitid创建分支
- 多层感知机总结-PyTorch
热门文章
- 林洋能源:布局能源互联网 分布式光伏龙头再扬帆
- GCC选项_-Wl,-soname 及 DT_NEEDED 的解释
- Differential Geometry之第八章常Gauss曲率曲面
- C++ 採集音频流(PCM裸流)实现录音功能
- latex中括号大小控制 [转]
- Redis回收进程如何工作的?
- Nginx的client_header_buffer_size和large_client_header_buffers学习
- Golang之不可重入函数实现
- layui table动态选中_layui后台管理—table 数据表格详细讲解
- Netty 的 FastThreadLocal 到底快在哪里