当前位置: 技术问答>linux和unix
怎么判断标准输入缓冲区是否有数据?
来源: 互联网 发布时间:2017-05-30
本文导语: while (TRUE) { char cmdbuf[4]; fgets(cmdbuf,4,stdin); //这里输入了许多数据,大于4,然后回车。 //我想判断标准输入缓冲区是否有数据?如果有我就循环调用getchar()清空缓冲区...
while (TRUE)
{
char cmdbuf[4];
fgets(cmdbuf,4,stdin);
//这里输入了许多数据,大于4,然后回车。
//我想判断标准输入缓冲区是否有数据?如果有我就循环调用getchar()清空缓冲区数据。
// int c;
//while((c = getchar()) != 'n' && c != EOF);
//但是如果没有数据的话,getchar这里会等待输入。
//问题就是怎么判断标准输入缓冲区是否有数据?
printf("%sn",cmdbuf);
}
{
char cmdbuf[4];
fgets(cmdbuf,4,stdin);
//这里输入了许多数据,大于4,然后回车。
//我想判断标准输入缓冲区是否有数据?如果有我就循环调用getchar()清空缓冲区数据。
// int c;
//while((c = getchar()) != 'n' && c != EOF);
//但是如果没有数据的话,getchar这里会等待输入。
//问题就是怎么判断标准输入缓冲区是否有数据?
printf("%sn",cmdbuf);
}
|
Portably, you can get the next character in the input stream with getchar() and then push it back with ungetc(), which results in a state as if the character wasn't removed from the stream.
or you could use setvbuf on stdin with your own buffer, so you can peek whenever you want
or you could use setvbuf on stdin with your own buffer, so you can peek whenever you want