当前位置:  技术问答>linux和unix

getchar或scanf怎么一直阻塞啊!

    来源: 互联网  发布时间:2015-07-01

    本文导语:  在main里边. 调用 init();//自己写的 while(1) {   c = getchar()   ....... } 在不使用init()时, getchar会接收一个字符,然后处理下边代码. 而加入了自己写的init后getchar ,或 scanf 就一直阻塞了. 为什么会有这样的事? ...

在main里边.
调用
init();//自己写的
while(1)
{
  c = getchar()
  .......
}
在不使用init()时, getchar会接收一个字符,然后处理下边代码. 而加入了自己写的init后getchar ,或 scanf 就一直阻塞了. 为什么会有这样的事?

|
kbhit()
{
int n;
ioctl(0, FIONREAD, &n);
return n;

用这个函数来判断有没有键盘输入,之后在读取.就可以解决

注意模式
system("stty raw");

system("stty cooked");

|
这两个函数就是阻塞的,TC里面也是一样的

在TC里面有bioskey(int)这个函数可以处理这个问题
参数有三个含义 0-相当于getchar(), 1-检测有没有键按下 2-检测特殊键(如ctrl)
好像还有一个 keypress(),来检测是否有键按下,
如果有可以调用getchar() 或者 bioskey() 来获取
bioskey(0) 取得的返回值跟 getchar()的不一样,如果你需要的话我再给你
在本子上面记着呢,现在手头没有

但是我在linux下面还没有找到这个函数的替代函数

|
init()的代码?

    
 
 

您可能感兴趣的文章:

  • getchar()在非阻塞时的返回值
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.swing.text类stringcontent的类成员方法: getchars定义及介绍
  • 定时器与getchar()的问题??奇怪!
  • java命名空间java.nio类bytebuffer的类成员方法: getchar定义及介绍
  • getchar()错误
  • java命名空间javax.swing.text类gapcontent的类成员方法: getchars定义及介绍
  • c语言中getch,getche,getchar的区别
  • java命名空间javax.swing.text接口abstractdocument.content的类成员方法: getchars定义及介绍
  • GetChar缓存机制深入剖析
  • java命名空间java.lang.reflect类array的类成员方法: getchar定义及介绍
  • 基于C语言EOF与getchar()的使用详解
  • java命名空间java.lang.reflect类field的类成员方法: getchar定义及介绍
  • java命名空间java.lang类string的类成员方法: getchars定义及介绍
  • java命名空间java.lang类stringbuffer的类成员方法: getchars定义及介绍
  • java命名空间java.lang类stringbuilder的类成员方法: getchars定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3