标签:循环 解决 讲解 return clu tchar ret 影响 scanf
# include<stdio.h>
int main(void)
{
int i,j,k;
char ch;
printf("请进行第一次输入...\n");
scanf("%d",&i);
printf("i=%d\n",i);
printf("----------------\n");
printf("请进行第二次输入....\n");
scanf("%d",&j);
printf("j=%d\n",j);
printf("----------------\n");
printf("请进行第三次输入....\n");
scanf("%d",&k);
printf("k=%d\n",k);
return 0;
/*
----------------vc++6.0中输出得结果-----------------------
请进行第一次输入...
123
i=123
----------------
请进行第二次输入....
456
j=456
----------------
请进行第三次输入....
789
k=789
-------------------------------------------------------------
请进行第一次输入...
123.。。。。
i=123
----------------
请进行第二次输入....
j=-858993460
----------------
请进行第三次输入....
k=-858993460
-------------------------------------------------------------
请进行第一次输入...
mmmmm
i=-858993460
----------------
请进行第二次输入....
j=-858993460
----------------
请进行第三次输入....
k=-858993460
-----------------------------------------------------------
心得:
我们看到只有第一次的输入是正确的。后面两次是因为带有不能转换为整型的字符而出现垃圾数据。前面我们也讲解了是因为识别的时候遇到了不是整型的就自动放弃了。
所以在这里就不详细的讲解了。
----------------------------------------------------------
*/
}
我们看到用户的非法输入给后面造成了严重的影响
# include<stdio.h>
int main(void)
{
int i,j,k;
char ch;
printf("请进行第一次输入...\n");
scanf("%d",&i);
printf("i=%d\n",i);
while(ch=getchar()!='\n')
continue;
printf("----------------\n");
printf("请进行第二次输入....\n");
scanf("%d",&j);
printf("j=%d\n",j);
while(ch=getchar()!='\n')
continue;
printf("----------------\n");
printf("请进行第三次输入....\n");
scanf("%d",&k);
printf("k=%d\n",k);
return 0;
/*
----------------vc++6.0中输出得结果-----------------------
请进行第一次输入...
23mmmmm
i=23
----------------
请进行第二次输入....
45mmmmmmmmmm
j=45
----------------
请进行第三次输入....
78mmmmmmmmmmm
k=78
-----------------------------------------------------------
心得:
我们看到加入一个while循环后就解决了这个问题。实际上也是比较好理解的就不细讲了。
*/
}
标签:循环 解决 讲解 return clu tchar ret 影响 scanf
原文地址:https://www.cnblogs.com/huao990928/p/12491986.html