防止非法字符输入c语言,scanf()函数输入非法字符的处理

sanf()函数不做参数类型匹配检查。一旦遇到非法字符输入,编译程序并不提出错误信息,函数scanf()就认为输入数据结束,导致不能正确读入输入数据。

下面的程序可作为scanf()函数输入非法字符的处理:

//scanf()函数输入非法字符的处理

#include

main ()

{

inta,b ,ret;

A:

printf("输入a和b的值:\n");

ret= scanf("%d%d",&a,&b);

if(ret!=2)

{

printf("Input error!\n\n");

fflush(stdin);

printf("请重新输入:\n");

gotoA;

}

else

{

printf("你输入的a=%d, b=%d\n",a,b);

}

}

//scanf()函数输入非法字符的处理

#include

main ()

{

int a,b ,ret;

A:

printf("输入a和b的值:\n");

ret= scanf("%d%d",&a,&b);

if (ret!=2)

{

printf("Input error!\n\n");

fflush(stdin);

printf("请重新输入:\n");

goto A;

}

else

{

printf("你输入的a=%d, b=%d\n",a,b);

}

}

代码截图为:

a4c26d1e5885305701be709a3d33442f.png

调试截图为:

a4c26d1e5885305701be709a3d33442f.png

当输入“1.a

”,空格,“3”时就出现了错误提示,并要求重新输入。

值得注意的是scanf()函数有函数返回值,如果scanf()函数调用成功(能正常读入输入数据),则其返回值为已成功读入数据的个数(而不是已成功读入的数据)。(所以ret!=2,能作为scanf()函数没有成功调用的条件)

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值