首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言中scanf的有关问题

2012-04-12 
C语言中scanf的问题本人在数据结构调试过程中遇到不解问题,关于scanf语句的问题1voidDelNode(LinkListhead

C语言中scanf的问题
本人在数据结构调试过程中遇到不解问题,关于scanf语句的问题
1void   DelNode(LinkList   head)
2{
3     char   jx;
4       ListNode   *p,*q;
5       char   num[5];
6       char   name[9];
7         p=head;
8       if   (p==NULL)   {
9             printf( "No   data!\n ");
10             return   ;
11         }
12       printf( "==================\n ");
13         printf( "     1.num     delete         \n ");
14       printf( "     2.name   delete         \n ");
15         printf( "==================\n ");
16       printf( "delete(y/n?):   \n ");
17             scanf( "%c ",&jx);
18       if   ((jx== 'y ')||(jx== 'Y '))
          {
              q=head;
              while   ((q!=NULL)&&(q-> next!=p))
q=q-> next;
              q-> next=p-> next;
              free(p);
              printf( "already   delete!\n ");
            }
         
        }
为什么在18行处没有停下来提示输入jx而是直接执行下面了呢?
记得似乎以前在教科书看过,有些印象,但是现在一时找不到了,希望得到大家的帮忙,谢谢了!

[解决办法]
printf( "delete(y/n?): \n ");//加一个getchar();
scanf( "%c ",&jx);
[解决办法]
清空缓冲区的回车。。。
象LS所说,也可以用fflush(stdin);
[解决办法]
这个问题貌似N多人问过

是scanf遗留的回车被下一次接受了

fflush(stdin);也是可以的

热点排行