• c 语言实现如下:

    #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <termios.h>
#include <termio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h> int kbhit(void)
{
struct timeval tv;
struct termios old_termios, new_termios;
int error;
int count = 0; tcgetattr(0, &old_termios); // 获取之前的标准输入终端状态
new_termios = old_termios; new_termios.c_lflag &= ~ICANON; // 设置行模式原始输入
new_termios.c_lflag &= ~ECHO; // 设置行模式原始输入
new_termios.c_cc[VMIN] = 1;
new_termios.c_cc[VTIME] = 0;
error = tcsetattr(0, TCSANOW, &new_termios); // 设置 标准输入终端 状态立即生效
tv.tv_sec = 0;
tv.tv_usec = 100;
select(1, NULL, NULL, NULL, &tv); // 监控 error += ioctl(0, FIONREAD, &count); // 获取标准输入的字符
error += tcsetattr(0, TCSANOW, &old_termios); // 还原 标准输入终端状态 return error == 0 ? count : -1; // 如果有字符输入会返回非零
} int main(void)
{
while(!kbhit()) // 返回非零退出
{
printf("chenfulin is sb\n");
sleep(1);
}
return 0;
}

Linux while 获取键盘输入退出的更多相关文章

  1. linux shell获取键盘输入

    linux shell从键盘获取输入 代码1: #!/bin/bash #提示“Input your choice:”,把用户的输入保存入变量choice_user中read -p "Inp ...

  2. java利用Scanner获取键盘输入

    首发地址:我的网易博客 在运行一个java程序的时候,可能我们需要在运行的时候传递一些参数进去...咋办呢... java提供了一个Scanner类,利用这个类,我们可以很方便的获取键盘输入的参数.. ...

  3. 获取键盘输入或者USB扫描枪数据

    /// <summary> /// 获取键盘输入或者USB扫描枪数据 可以是没有焦点 应为使用的是全局钩子 /// USB扫描枪 是模拟键盘按下 /// 这里主要处理扫描枪的值,手动输入的 ...

  4. java 获取键盘输入常用的两种方法

    java 获取键盘输入常用的两种方法 方法1: 通过 Scanner Scanner input = new Scanner(System.in); String s = input.nextLine ...

  5. tkinter获取键盘输入

    tkinter获取键盘输入

  6. Java编程中获取键盘输入实现方法及注意事项

    Java编程中获取键盘输入实现方法及注意事项 1. 键盘输入一个数组 package com.wen201807.sort; import java.util.Scanner; public clas ...

  7. 在Delphi中使用键盘勾子获取键盘输入(译--5月7日)

    http://blog.sina.com.cn/s/blog_502b2e970100949s.html 获取键盘输入以控制无法接受输入焦点的控件考虑一些游戏,显示图片在TPainBox,但是TPai ...

  8. Java基础 - 获取键盘输入

    package com.demo3; import java.util.Scanner; /* * 使用 Scanner 获取键盘输入供程序使用 * * 使用步骤: * A:导包 * import j ...

  9. System.in 获取键盘输入

    此处说明 两种使用System.in获取键盘输入的两种方法,分别是Scanner 和 InputStreamReader. 其中System.in 在System类中的定义如下: package co ...

随机推荐

  1. (二)Activiti之——activiti数据库表介绍

    1. 数据库表的命名 Activiti的表都以ACT_开头. 第二部分是表示表的用途的两个字母标识. 用途也和服务的API对应. ACT_RE_*: 'RE'表示repository. 这个前缀的表包 ...

  2. 配置eclipse插件

    http://blog.csdn.net/zhangyabinsky/article/details/7043435

  3. jquery json ajax三级联动

    province_city_area.jsp <%@ page language="java" pageEncoding="UTF-8"%> < ...

  4. HDUOJ--1865 1string

    1sting Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  5. Python 死循环和嵌套循环

    何为死循环:在编程中,一个无法靠自身的控制终止的循环被称为死循环. 死循环的使用:死循环并非一无是处,C语言中死循环while true或 while 1 是单片机编程的普遍用法,死循环一直运行等待中 ...

  6. 关于JavaScript中Get/Set访问器

    有时候大家可能会纳闷,在使用JavaScript的时候,只需要给一个系统变量赋值就可以触发一系列操作去相应. 但是我们在写Js的时候,修改了一个自定义变量,却连个P都没有.是不是很郁闷呢? 其实,我们 ...

  7. Android 弹出有确认按键的对话

    //弹出对话框-------------------------------------------------- private void openDialog(String strMsg, Str ...

  8. 转:C#实现office文档转换为PDF或xps的一些方法

    代码支持任意office格式 需要安装office 2007 还有一个office2007的插件OfficeSaveAsPDFandXPS 下载地址 [url]http://www.microsoft ...

  9. 【转】谈“P=NP?”

    “P=NP?” 通常被认为是计算机科学最重要的问题.有一个叫Clay Math的研究所,甚至悬赏 100 万美元给解决它的人.可是我今天要告诉你的是,这个问题其实是不存在的,它根本不需要解决. 我并不 ...

  10. Go 普通LOG输出

    因为Go 语言中没有自带的宏, 来表示行号和文件, 需要从方法中去获取,麻烦.所以封装了一个函数,用于输出平时程序的打印日志 import ( "fmt" "log&qu ...