C语言图形 字符回调函数

void Main (){
    InitGraphics();
    
    MovePen(1,1);
    
    //startTimer(TIMER_BLINK500, 500);
    return;
}

void CharEventProcess(char c){
    str *xx;
     switch (c) {
       case '\r':  
           InitConsole();
           str * x=NULL;
           for (x=head;x->next!=NULL;x=x->next){
               printf("%s",x->s);
           }
               break;
         
        default:
              p=(str*)malloc(sizeof(str));
              (p->s)[0]=c;
              (p->s)[1]='\0';
              p->next=NULL;
              
              if (head==NULL){
                  head=p;
                  cursor=head;
              }
              else{
                  if (cursor->next==NULL){
                      cursor->next=p;
                      cursor=p;
                  }
                  else {
                      p->next=cursor->next;
                      cursor->next=p;
                      cursor=p;
                  }
              }
          
              xx=NULL;
              SetEraseMode(TRUE);
              MovePen(1,1); 
              for (xx=head;xx->next!=NULL;xx=xx->next){
                  DrawTextString(xx->s);
              }
              
            SetEraseMode(FALSE);
            MovePen(1,1);
            for (xx=head;xx->next!=NULL;xx=xx->next){
                  DrawTextString(xx->s);
              }
              
            break;
    }
}

求问各位老哥,键盘输入的时候,第一次按下按键没有反应,之后再按键,屏幕上出现的都是上一次按的键,比如先按a,再按s,那么在按s的时候,屏幕上出现的是a。求大佬解答。

用这个函数就不会了key = bioskey(0);

找到错了,链表遍历的for循环条件写错了orz

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y

C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html
C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html