首页 > 编程语言 >C++ 键盘操作

C++ 键盘操作

时间:2024-04-13 16:13:36浏览次数:20  
标签:std main handle coord 键盘 C++ HANDLE 操作 include

1.单方移动

#include <iostream>
#include <windows.h>
#include <conio.h>
using namespace std;
int main(){
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD coord = {0,0};
    SetConsoleCursorPosition(handle,coord);
    cout<<"zs";
    
    HANDLE Handle = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD Coord = {0,1};
    SetConsoleCursorPosition(Handle,Coord);
    cout<<"sz";
    int key;
    while(1){
        if(kbhit()){
            key = getch();
            if(key==72 || key==75 || key==77 || key==80){
                SetConsoleCursorPosition(handle,coord);
                cout<<"  ";
            } 
            if(key==87 || key==65 || key==68 || key==83){
                SetConsoleCursorPosition(Handle,Coord);
                cout<<"  ";
            }
            switch(key){
                case 72: coord.Y--;break;
                case 75: coord.X--;break;
                case 77: coord.X++;break;
                case 80: coord.Y++;break;
                
                case 87: Coord.Y--;break;
                case 65: Coord.X--;break;
                case 68: Coord.X++;break;
                case 83: Coord.Y++;break;
                
                default: break;
            }
            if(key==72 || key==75 || key==77 || key==80){
                SetConsoleCursorPosition(handle,coord);
                cout<<"zs";
            }
            if(key==87 || key==65 || key==68 || key==83){
                SetConsoleCursorPosition(Handle,Coord);
                cout<<"sz";
            }
        }
    }
    return 0;
}

2.双方移动

#include <iostream>
#include <windows.h>
#include <conio.h>
using namespace std;
int main(){
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD coord = {0,0};
    SetConsoleCursorPosition(handle,coord);
    cout<<"zs";
    
    HANDLE Handle = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD Coord = {0,1};
    SetConsoleCursorPosition(Handle,Coord);
    cout<<"sz";
    int key;
    while(1){
        if(kbhit()){
            key = getch();
            if(key==72 || key==75 || key==77 || key==80){
                SetConsoleCursorPosition(handle,coord);
                cout<<"  ";
            } 
            if(key==87 || key==65 || key==68 || key==83){
                SetConsoleCursorPosition(Handle,Coord);
                cout<<"  ";
            }
            switch(key){
                case 72: coord.Y--;break;
                case 75: coord.X--;break;
                case 77: coord.X++;break;
                case 80: coord.Y++;break;
                
                case 87: Coord.Y--;break;
                case 65: Coord.X--;break;
                case 68: Coord.X++;break;
                case 83: Coord.Y++;break;
                
                default: break;
            }
            if(key==72 || key==75 || key==77 || key==80){
                SetConsoleCursorPosition(handle,coord);
                cout<<"zs";
            }
            if(key==87 || key==65 || key==68 || key==83){
                SetConsoleCursorPosition(Handle,Coord);
                cout<<"sz";
            }
        }
    }
    return 0;
}

 

标签:std,main,handle,coord,键盘,C++,HANDLE,操作,include
From: https://www.cnblogs.com/wangyihang-xh/p/18132990

相关文章

  • 键盘操控
    1/*2//单人游戏3#include<iostream>4#include<windows.h>5#include<conio.h>6usingnamespacestd;7intmain(intargc,char**argv){8HANDLEhandle=GetStdHandle(STD_OUTPUT_HANDLE);9COORDcoord={0,0};......
  • c++中的查找list元素
    回顾学习find和find_if,网上查了一下资料,这里记录一下。    STL的find,find_if函数提供了一种对数组、STL容器进行查找的方法。使用该函数,需#include<algorithm>我们查找一个list中的数据,通常用find(),例如:1、findusingnamespacestd;intmain(){  list<int>l......
  • 控制台操作
    #include<bits/stdc++.h>#include<windows.h>#include<conio.h>//控制台输入输出文件usingnamespacestd;intmain(){HANDLEhandle=GetStdHandle(STD_OUTPUTHANDLE);//获取标准输出的句柄COORDcoord={0,0};//保存光标坐标SetConsoleCursorPosit......
  • 11、操作系统安全加固-Windows 加固
    1.账号管理与认证授权1.1.按用户类型分配账号目的:根据系统要求,设定不同账户和组,管理员、数据库sa、审计用户、来宾用户等实施方法:打开本地用户和计算机管理器或 打开运行,输入lusrmgr.msc右击账户->属性->更改隶属于右击功能组->属性->成员1.2.清理......
  • 点阵数显驱动IC/抗干扰数显驱动VK1650 SOP16/DIP16,内部集成有MCU数字接口、数据锁存
    产品品牌:永嘉微电/VINKA产品型号:VK1650封装形式:SOP16/DIP16概述VK1650是一种带键盘扫描电路接口的LED驱动控制专用芯片,内部集成有数据锁存器、LED驱动、键盘扫描等电路。SEG脚接LED阳极,GRID脚接LED阴极,可支持8SEGx4GRID的点阵LED显示。最大支持7x4按键。本芯片性能稳定质量......
  • c++结构体、共用体(联合体)
    union数据成员共享同一段内存,在使用时按照最大成员变量的大小开辟空间,相对struct比较是节省内存的。内存空间是以占内存最大的以准。 struct数据成员各占一段内存,在使用时按照各自成员变量的大小开辟空间。 如图:一个学生(姓名namechar[10],年龄oldshort,电话telchar[......
  • 10、操作系统安全加固-Linux加固
    1.账号管理与认证授权1.1.为不同的管理员分配不同的账号目的:根据不同用途设置不同账户账号,提高安全层级实施方法:1.设置高风险文件为最小权限,如:passwd、shadow、group、securetty、services、grub.conf等2.使用sudo命令设置命令执行权限和禁止敏感操作权限3.检查其他权限过......
  • 通过__cplusplus查看c++版本并检查gcc支持版本
    虽然平时开发都是用的c++11标准,但打算看一下wslubuntu里面的gcc默认支持什么标准~1打印__cplusplus宏#include<cstdio>intmain(){printf("%ld\n",__cplusplus);}➜testg++test_cpp_version.cpp-otest_cpp_version➜test./test_cpp_version20......
  • C++,四种强制类型转换,static_cast,const_cast,dynamic_cast,reinterpret_cast
      #include<iostream>usingnamespacestd;structA{virtualvoidfunc(){cout<<"Afunc"<<endl;}};structB:publicA{voidfunc(){cout<<"Bfunc"<<endl;}};intmain(){c......
  • C++未定义行为
    0前言未定义行为(UndefinedBehavior)是指语言标准未做规定的行为。同时,标准也从没要求编译器判断未定义行为,所以这些行为有编译器自行处理,在不同的编译器可能会产生不同的结果,又或者如果程序调用未定义的行为,可能会成功编译,甚至一开始运行时没有错误,只会在另一个系统上,甚至是在另......