windows下利用select函数等待键盘输入
#include<iostream>
#include <Winsock2.h>
#pragma comment(lib,"ws2_32.lib")
#define STDIN 0
using namespace std;
void main()
{
timeval tm;
tm.tv_sec=20;
tm.tv_usec=0;
fd_set readfds;
FD_ZERO(&readfds);
FD_SET(STDIN,&readfds);
select(STDIN+1,&readfds,NULL,NULL,&tm);
if(!FD_SET(STDIN,&readfds)){
cout<<"time out"<<endl;
} else {
cout<<"a key was pressed"<<endl;
}
}
这个程序始终输出"a key was pressed"
我想问FD_ISSET这个宏不是只有描述字中STDIN有输入的时候才返回正数的吗为什么键盘没有输入也返回正数的
求大侠解释
[解决办法]
windows和linux怎么那么像。