C++ 监视检测键盘输入 字符 并打印

  • Post author:
  • Post category:其他

直接上代码:

注意以下代码基于linux系统,注意修改头文件如用windows的话。 sublime编译器很方便。

方式一: 可检测多个输入字符,enter结束


#include <fstream> // printf("%s\n", );
//#include <stdio.h> 
#include <sys/select.h> //fd_set
#include <unistd.h> // for linux STDIN_FILENO
using namespace std;
int main (void)
{
    fd_set fds;
    FD_ZERO(&fds);
    FD_SET(STDIN_FILENO,&fds);
    char stdin_buffer[256];
    while(1)
    {
        fflush(stdin);
        char keyboard_hit = 0;

        timeval tv;
        tv.tv_sec = 0;
        tv.tv_usec = 1000*1;
        FD_ZERO(&fds);
        FD_SET(STDIN_FILENO,&fds);

        int select_ret = select(STDIN_FILENO+1,&fds,NULL,NULL,&tv);
        if(select_ret <0)
        {
            printf("error in select stdin");

        }
        else
        {
            if(!FD_ISSET(STDIN_FILENO, &fds))
            {
                //printf("no key \n");
                continue;
            }
        }

        read(STDIN_FILENO,stdin_buffer,256);

        keyboard_hit = stdin_buffer[0];
        //printf("%c\n", keyboard_hit);
        //printf("keyboard: %d \n", keyboard_hit);
        if(keyboard_hit == 'a')
        {
            printf("input a \n");

        }
    }
return 0;
}

方式二: 单字符输入和输出

#include <stdio.h>
using namespace std;

int main()
{
    char a;
    a = getchar();
    putchar(a);
    putchar('\r');
    while (a = getchar())
    {
        putchar(a);
        putchar(' ');
    }
}  

版权声明:本文为u012029332原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。