搜索
查看: 912|回复: 13
打印 上一主题 下一主题

关于do while的疑惑

[复制链接]
楼主
发表于 2014-3-2 11:54:08 | 显示全部楼层
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. int main()
  5. {
  6.     char c[100];
  7.     do
  8.     {
  9.         printf("输入字母\n");
  10.         scanf("%s",c);
  11.         printf("%s\n",c);
  12.         if(!(strcmp(c,"y")||!(strcmp(c,"Y"))))
  13.         {
  14.             printf("是\n");
  15.             break;
  16.         }
  17.         else if(!(strcmp(c,"n")||!(strcmp(c,"N"))))
  18.         {
  19.             printf("否\n");
  20.             break;
  21.         }
  22.         else
  23.             printf("wrong!\n");
  24.     }while(1);
  25.     system("pause");
  26.     return 0;
  27. }
复制代码
沙发
发表于 2014-3-2 13:09:07 | 显示全部楼层
哎呀呀 发表于 2014-3-2 12:37
我用了fflush(stdin)就好了,谢谢您.

有个地方要你注意:
fflush(stdin);是不正规的作法,并不能“正规的”清除缓冲区
建议这样:
  1. while((c=getchar())!='\n'&&c!=EOF)
  2.     ;
复制代码

另外,while的那个分号不是我打错了,自己去GOO.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表