您的位置:首页 > 其它

C下如何通过scanf()函数获取正确的数据

2011-04-22 22:48 525 查看
      初学C语言,在看了几个范例程序之后发现他们都没有对用户输入数据类型的合法性进行判断。所以依据目前仅有的知识,本人编写了下面这段代码,试图实现获取正确的数据。

 

]#include <stdio.h>
void main()	/*用户必须输入一个数字*/
{
float x;
short a;
printf("请输入一个数字:");
a=scanf("%f",&x);

while(a==0)	/*对输入的数据进行判断*/
{
printf("输入错误!/n请重新输入:");
a=scanf("%f",&x);
}

printf("您输入的数字为:%f。",x);
}


       以上代码在VC6.0下编译通过;可是运行时,当输入任意非数字字符,程序陷入死循环,不停地显示“输入错误!请重新输入:”。于是将循环部分修改为:  

while(scanf("%f",&x)==0)
printf("输入错误!/n请重新输入:");

 

       可是死循环问题依旧。

       恳请各路高手不吝予以指点。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c float 语言