标签:case 满足条件 puts scanf break 回车符 cdata 吸收 getchar
在进行如下代码时:
#include <stdio.h>
int main()
{
int data;
char cdata;
printf("请输入一个整数:\n");
scanf("%d",&data);
switch(data){
case 1:
puts("满足条件1的情况");
break;
case 2:
puts("满足条件2的情况");
break;
case 3:
puts("满足条件3的情况");
break;
default:
puts("其他情况");
}
printf("请输入一个字符:\n");
scanf("%c",&cdata);
switch(cdata){
case 'a':
puts("满足条件a的情况");
break;
case 'b':
puts("满足条件b的情况");
break;
case 'c':
puts("满足条件c的情况");
break;
default:
puts("其他情况");
}
return 0;
}
其运行结果如下图所示:
未输入第二次,却显示了其运行结果。
分析其原因,是因为第一次scanf("%d",&data);输入后,回车没有被吸收,被放入到scanf("%c",&cdata);中。故需要将回车符吸收,即可进行第二次输入。代码进行如下修改:
printf("请输入一个字符:\n");
getchar(); // 吸收回车符
scanf("%c",&cdata);
其运行结果如下图所示:
标签:case,满足条件,puts,scanf,break,回车符,cdata,吸收,getchar 来源: https://blog.csdn.net/Mystery9578/article/details/123126891
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。