直接上代码:
注意以下代码基于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 版权协议,转载请附上原文出处链接和本声明。