怎样检查C语言输入数据的合法性?

我在编程的过程中需要输入整数,如何检查输入数据的合法性?如果合法则继续进行下一步的运算,如果不合法则输出EOF。希望各位能帮个忙……谢谢了

1、找到安装好的C-free5,双击打开,进入c-free5的主界面。

2、进入主界面后,点击左上角的空白页选项,新建一个空白的工程,用来实现c语言的输入。

3、新页新建完成后,在前几行打入c语言主函数的基本框架,框架打好后即可调用输入函数。

4、这里的输入函数以scanf为例,首先定义一个整型变量,随机命名这里以a为例。

5、变量定义完成后,在调用scanf函数,使用赋值语句将scanf函数所得到的值给a。

6、语句完成后,点击最上方的运行按钮即可运行这个程序了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-22

    通过scanf函数的返回值来验证输入的合法性。

    scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束)。
      ① 遇空格、“回车”、“跳格”键。
      ② 遇宽度结束。
      ③ 遇非法输入。

    scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
    如:
    scanf("%d %d",&a,&b);
    如果a和b都被成功读入,那么scanf的返回值就是2
    如果只有a被成功读入,返回值为1
    如果a和b都未被成功读入,返回值为0
    如果遇到错误或遇到end of file,返回值为EOF。
    且返回值为int型.

第2个回答  推荐于2017-09-12
如果是整数的话,
这么判断就行:

float num;
int num2
scanf("%f",&num);

if(num==(int)num) num2=(int)num;//如果输入正确,将整数保存到num2中
else printf("EOF");本回答被提问者采纳
第3个回答  2009-03-24
用 if (scanf("%d",&x) != 1) { 坏的数} 判断。
scanf,fscanf 送返 正确地读入的数的个数,例如:
if (scanf("%d %d %d" ,&x,&y,&z) != 3) { 有坏的数}

--------------------------
int x;
if (scanf("%d",&x) != 1) {
printf("bad\n");
printf("EOF\n");
}
相似回答