操作系统命令(贪吃蛇项目)

🏝1.获得句柄

GetStdHandle是⼀个Windows API函数。它用于从⼀个特定的标准设备(标准输入、标准输出或标 准错误)中取得⼀个句柄(用来标识不同设备的数值),使用这个句柄可以操作设备。

⛳️函数原型:

HANDLE GetStdHandle(DWORD nStdHandle);

#include<stdlib.h>
#include<windows.h>
int main()
{HANDLE houtput = NULL;houtput=GetStdHandle(STD_OUTPUT_HANDLE);
}

🏝2.判断键盘按键是否被按

⛳️GetAsyncKeyState函数

函数原型:
SHORT GetAsyncKeyState(it vKey)

vKey代表虚拟键位,每一个键位有一个虚拟键码,如果short类型16位的最高位是1,表示该键位是按下的,如果最高位是0,表示该键位是抬起的。

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
int main()
{short ret = (GetAsyncKeyState(0x35));while (1){if ((ret & 1) == 1)printf("5被按下\n");elseprintf("5没有被按下\n");}return 0;
}

在比特鹏哥的电脑环境中,上面代码没有按5时,不打印,按下5以后,死循环打印5被按下。

⛳️然后我就在最前面加上Sleep(3000)。当运行程序以后在三秒内按下5时,打印5被按下。如果三秒内没有按5,则打印5没有被按下。

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<stdbool.h>
int main()
{Sleep(2000);short ret = (GetAsyncKeyState(0x35));if ((ret & 1) == 1)printf("5被按下\n");elseprintf("5没有被按下\n");return 0;
}

🏝3.控制台屏幕上的坐标COORD

COORD 是Windows API中定义的⼀个结构体,表示⼀个字符在控制台屏幕幕缓冲区上的坐标,坐标系 (0,0) 的原点位于缓冲区的顶部左侧单元格。

⛳️类型声明:

typedef struct _COORD

{

        SHORT X;

        SHORT Y;

} COORD, *PCOORD;

🏝4.改变运行窗口的光标位置

⛳️SetConsoleCursorPosition函数

函数原型:

BOOL WINAPI SetConsoleCursorPosition( HANDLE hConsoleOutput, COORD pos );

#include<stdlib.h>
#include<windows.h>
int main()
{COORD cursor = { 10,20 };HANDLE houtput = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(houtput, cursor);getchar();
}

   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多线程(60)SynchronousQueue和它的用途

SynchronousQueue是一个没有存储空间的阻塞队列&#xff0c;它是java.util.concurrent包中的一部分。每一个put操作必须等待一个take操作&#xff0c;反之亦然。SynchronousQueue内部并不维护任何元素的存储&#xff0c;可以认为它是一种线程之间一对一传递消息的机制。 核心特…

ArrayList的并集、交集、差集

并集&#xff1a; //并集操作&#xff1a;将另一个容器中的元素添加到当前容器中List<String> a new ArrayList<>(); a.add("a"); a.add("b"); a.add("c");List<String> b new ArrayList<>(); b.add("a");…

MySQL出现Waiting for table metadata lock的原因方法

MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景。而且,一旦alter table TableA的操作停滞在Waiting for table metadata lock的状态,后续对TableA的任何操作(包括读)都无法进行,因为他们也会在Opening tables的阶段进入到Waiti…

力扣:219. 存在重复元素 II

力扣&#xff1a;219. 存在重复元素 II 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 …

SIP-7035 隧道广播功率放大器 校园网络广播功放sip定压功放

SIP-7035 隧道广播功率放大器 校园网络广播功放sip定压功放 产品介绍18123651365微信 SIP-7035是我司的一款合并式定压功放&#xff0c;支持标准SIP协议&#xff0c;具有10/100M以太网接口&#xff0c;后面板上有2组AUX音源输入和6.35mm接口的麦克风输入&#xff0c;可以输入…

Grass注册不了、按钮灰色的解决方案

近期相信grass挂机项目不少人有所有接触。还有不了解这个项目的可以看看博客&#xff1a; http://t.csdnimg.cn/bI4UO 但是不少人注册时遇到无法注册的问题&#xff0c;或者是注册按钮显示灰色&#xff0c;放上鼠标时显示禁止。这也是博主在尝试时遇到的问题。 经过探索&…

二维数组之前缀和下篇

在此之前&#xff0c;可以先去看看二维数组之二维前缀和首篇和二维数组之前缀和中篇。 最大子数组和 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 示例 1&#xff1a; …

RabbitMQ和Minio实现头像存储

使用 RabbitMQ 处理用户头像上传任务&#xff0c;同时将用户头像存储在 Minio 中是一个常见的应用场景。该示例将展示如何在 Spring Boot 项目中使用 RabbitMQ 和 Minio 实现此功能。示例包括两个部分&#xff1a;一是将头像上传任务推送到 RabbitMQ 队列中&#xff1b;二是从队…

GPT人工智能在线网页版大全

平民不参与内测&#xff0c;还能使用 ChatGPT 吗&#xff1f; 自去年 ChatGPT 爆红以来&#xff0c;关于它的消息铺天盖地。如果你真的想使用它&#xff0c;途径有很多。除了官方网站外国内还有许多 ChatGPT 的镜像网站&#xff0c;其中不乏免费的 3.5 版本。虽然有些网站需要…

2024年04月18日优雅草便民tools开源-git以及dcloud同步-长期更新

优雅草小工具-数据来自优雅草api赋能 优雅草小工具-数据来自优雅草api赋能-优雅草便民工具是一款由成都市一颗优雅草科技有限公司打造的便民查询公益工具&#xff0c;2024年1月17日正式发布v1.0.0版本&#xff0c;本工具为了方便大众免费使用&#xff0c;本生活小工具会陆续加入…

Mysql 为什么使用 B+Tree 作为索引结构

常规的数据库存储引擎&#xff0c;一般都是采用 B 树或者 B树来实现索引的存储。 因为 B 树是一种多路平衡树&#xff0c;用这种存储结构来存储大量数据&#xff0c;它的整个高度会相比二叉树来说&#xff0c;会矮很多。 而对于数据库来说&#xff0c;所有的数据必然都是存储在…

Pixverse:开启文生视频与图生视频新纪元

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

在桐乡 CAD必须学会的基本知识

CAD必须学会的基本知识 一说到CAD&#xff0c;跑到大街上问下&#xff0c;会不会这个软件&#xff1f;保证一大批人都说会&#xff0c;但是&#xff0c;大多数人都其实只是会了点简单的东西&#xff01;抄个图没什么问题&#xff0c;但是如果遇到复杂的产品或者图纸&#xff0…

Python反爬突破Cloudflare5秒盾的处理

最近爬一个网站&#xff0c;遇到了个很棘手的问题&#xff0c;网页访问正常&#xff0c;查看网页源码内容能看到想要的信息&#xff0c;但是用python去爬的话就会遇到反爬Cloudflare 5秒盾的检测&#xff0c;返回各种比如Just a moment…等等的结果&#xff0c;最后用了两种方法…

Python基础02-掌握HTTP API的秘诀

在下面文案基础上扩展&#xff0c;写一篇技术博客&#xff0c;标题要有吸引力&#xff1f; 标题&#xff1a; 在Python中&#xff0c;使用HTTP API已成为一种常见的操作。本文将深入探讨如何使用Python的requests库与HTTP API进行交互。我们将学习如何发送GET和POST请求、处理…

java:代理模式

代理模式 动态代理是一种在运行时生成代理对象的机制,通过代理对象可以在不修改原始对象的情况下,对其进行额外的操作和增强. 被代理对象就是豌豆射手 代理角色就是火炬树桩 动态代理的使用场景 AOP(Spring框架技术): 动态代理可以在不修改原始代码的情况下,通过拦截方法…

怎么使用Python提取快递信息

目录 一、前言 二、准备工作 三、安装必要的库 四、编写代码 导入必要的库 定义快递查询函数 调用快递查询函数 五、进阶操作 定时查询快递信息 发送快递信息通知 六、注意事项 一、前言 在提取快递信息之前&#xff0c;我们需要了解快递查询的基本原理。大部分快递…

apache是什么

​Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上&#xff0c;由于其跨平台和安全性被广泛使用&#xff0c;是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充&#xff0c;将Perl/Python等解释器编译…

ARouter之kotlin build.gradle.kts

ARouter之kotlin build.gradle.kts kotlin的配置需要用到kapt 项目的build.gradle.kts plugins {id("com.android.application") version "8.1.2" apply falseid("org.jetbrains.kotlin.android") version "1.9.0" apply falseid(&…

使用 Qt 设计师给工具栏添加图片按钮(来自ChatGPT)

使用Qt Designer给工具栏添加图片按钮是一个直观且简单的过程。下面是详细步骤&#xff1a; 打开Qt Designer 并创建或打开一个已有的窗口界面文件&#xff08;通常以.ui结尾&#xff09;。 添加工具栏&#xff08;如果尚未添加&#xff09;&#xff1a;如果主窗口没有工具栏&…