• 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();
    	
    }
    

      

  • 相关阅读:
    Js onmouseover和onmouseout小特效
    js操作元素透明度以及浏览器兼容性
    大多数人不知道的表格其他写法的onmouseover效果
    表格的删除与添加以及id的唯一性
    添加或创建元素,最新消息在最上方
    数组元素排序
    删除父级元素
    网页侧栏小分享
    如何利用极致业务基础平台构建一个通用企业ERP之十七过滤器的功能介绍
    如何利用极致业务基础平台构建一个通用企业ERP之十六物料进出明细报表的设计
  • 原文地址:https://www.cnblogs.com/kmsfan/p/3964810.html
Copyright © 2020-2023  润新知