输入语句,当代码运行到它的时候就要等待输入,才能执行下一行代码,如果不输入的话,就相当于在这里暂停了(程序设计老师讲过通过这样的方式以达到暂停(pause)的效果),但如果我们想要如果没输入仍然可以运行,比如,玩坦克大战的时候不按方向键,游戏画面依旧在变动(还比如以前我想在我一个小软件中做一点美化:标题文字颜色在深蓝与浅蓝间随时间不断变化,结果最后的效果是颜色随鼠标移动变化,鼠标不动,颜色就不变),那如果要改变这一问题,怎么办?

头文件: conio.h

函数:

        _kbhit()    :无阻塞函数,当运行到这里检测键盘是否有输入,有则返回1,无则返回0 

        _getch()   :不回显输入函数,作用同getchar(),区别在于_getch()输入时输入的内容不会被显示。

下面来一个简单的例子示范一下:

    假如你让一个人帮你数天上的星星,然后他数了十多分钟后累了,又不能停下,就只好问你:还要继续数吗?你说:要。他继续数了一颗,又问你要不要继续数,就一直这样不断的数一颗问一遍,数一遍问一遍,是不是很烦?那你会怎么办?当然是告诉他:我没叫你停,你就一直数!对吧,下面用代码实现一下。

#include<conio.h>
#include<iostream>
using namespace std;
int main() {
int i = 0;
char ch;
while (1) {
cout << ++i << "颗星星" << endl;
if (_kbhit()) { //如果键盘有输入
ch = _getch(); //且输入k
if (ch == 'k')
break;
}
}
return 0;
}

这样我们就达到了一个动态的效果:如果不输入k,就一直“数星星”。

下面再将代码进行一个简单的完善:

#include<conio.h>
#include<iostream>
#include<Windows.h>
using namespace std;
int main() {
int i = 0;
while (1) {
cout << ++i << "颗星星" << endl;
if (_kbhit()&&toupper(_getch())=='K') //如果键盘有输入且输入K键(即k,K)
break;
Sleep(1000); //不能数得太快,不然太夸张容易被看出来是假的,所以1000ms(1s)数一次
system("cls"); //清屏,过去的都让它过去吧
}
return 0;
}

让键盘输入不影响界面的动态效果(C++)的更多相关文章

  1. Android 软键盘弹出,界面整体上移

    在做搜索功能的时候,点击搜索框,搜索框获取焦点,键盘弹出:现在问题出来了,android软键盘弹出的时候,android整个界面上移,布局被挤压,很难看:要解决这个问题,我们需要用到 windowSo ...

  2. 用Delphi模拟键盘输入

    在Windows大行其道的今天,windows界面程序受到广大用户的欢迎.对这些程序的操作不外乎两种,键盘输入控制和鼠标输入控制.有时,对于繁杂的,或重复性的操作,我们能否通过编制程序来代替手工输入, ...

  3. VB模拟键盘输入的N种方法

    VB模拟键盘输入的N种方法http://bbs.csdn.net/topics/90509805hd378发表于: 2006-12-24 14:35:39用VB模拟键盘事件的N种方法 键盘是我们使用计 ...

  4. noVNC支持手机自带键盘输入

    代码修改说明 novnc的web链接类似为:http://192.168.1.177:6080/vnc_auto.html?token=105356fa-bbe3-43e4-a0ce-7703dc42 ...

  5. Android - 隐藏EditText弹出的软键盘输入(SoftInput)

    隐藏EditText弹出的软键盘输入(SoftInput) 本文地址: http://blog.csdn.net/caroline_wendy 保持界面的整洁, 能够选择在进入界面时, 隐藏EditT ...

  6. 【转】C# winform 加载网页 模拟键盘输入自动接入访问网络

    [转]C# winform 加载网页 模拟键盘输入自动接入访问网络 声明: 本文原创,首发于博客园 http://www.cnblogs.com/EasyInvoice/p/6070563.html  ...

  7. java学习笔记(5) 控制语句、键盘输入

    控制语句: java控制可以分为7种: *控制选择结构语句: *if  if else *switch *控制循环结构语句: *for *while *do while *改变控制语句顺序: *bre ...

  8. 解决 minicom 不能接收键盘输入问题

    今天突然minicom 不能接受键盘输入了.早上的时候在其他设备上不能识别usb转串口的设备,重新启动电脑后,恢复正常了.下午又出现minicom 不接收键盘输入. 百度了一下解决了. 解决方法 由于 ...

  9. WPF进阶技巧和实战09-事件(1-路由事件、鼠标键盘输入)

    理解路由事件 当有意义的事情发生时,有对象(WPF的元素)发送的用于通知代码的消息,就是事件的核心思想.WPF通过事件路由的概念增强了.NET事件模型.事件由允许源自某个元素的事件由另一个元素引发.例 ...

随机推荐

  1. 吴裕雄 python神经网络 水果图片识别(5)

    #-*- coding:utf-8 -*-### required libaraiedimport osimport matplotlib.image as imgimport matplotlib. ...

  2. hdu2669-Romantic-(扩展欧几里得定理)

    Romantic Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  3. 前端三大框架之一React入门教程

    相信大家对框架这个词都很熟悉吧,我一直喜欢js原生来开发,但是目前都要求工作效率,所有使用框架或者是库会使我们开发更加方便和快速,甚至一个人干十个人的活.. 框架优点: 1.方便开发.快速写功能 2. ...

  4. js 继承的方式

    //定义object的继承方法 Object.extend = function(destination, source) { for(property in source) { destinatio ...

  5. java aop的理解

    https://www.cnblogs.com/mafly/p/SpringAOP.html

  6. unittest测试

    标签(空格分隔): unittest unittest介绍: python里面也有单元测试框架-unittest,相当于是一个python版的junit. 一.unittest简介 1.先导入unit ...

  7. python全栈 字典数据类型相关知识及操作

    python 全栈开发 一.字典 1. 字典的概念: 字典 : dict 用 {} 来表示,   键位值数据. { key , value }    具有唯一性. 键:都必须是可哈希的     不可变 ...

  8. dubbo 实战

    dubbo 官网:http://dubbo.apache.org/zh-cn/docs/user/quick-start.html dubbo-admin 下载 : https://github.co ...

  9. Docker 网络不通的解决方法

    表现是: docker主机内部网络正常,与其它主机的连接失效,其它主机不能连接docker主机上映射的端口,docker内部也无法连接外部主机. 执行docker info,可以看到一些警告. 可在不 ...

  10. CentOS 6 UNEXPECTED INCONSISTENCY RUN fsck MANUALLY

    1:按Control-D,系统自动重启: 2:直接输入root的密码进入命令行 3:看网上的介绍需要输入mount |grep “on/” 找到root的分区,我试过后无效 4:直接输入fsck -y ...