求教!

tiancanshi 2002-06-09 02:17:53
在C中用scanf("%d",&i);获取一个数字,怎样判断,才能做到防止输入非数字的其它
字符?
...全文
33 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiancanshi 2002-06-09
  • 打赏
  • 举报
回复
to:清风明月
刚才编译器不正常工作,重启以后,测试你的代码非常正确。
一个简单的函数就可以看出水平的差距,实在是佩服!
mylove0618 2002-06-09
  • 打赏
  • 举报
回复
你这个问题看起来很简单,但是要实现确实很困难。对于c而言,你很难避免用户输入错误的内容。比如你要求输入数字,结果他输入了其他字符。我不知道有什么办法可以使用户不输入错误。但是我们总是有办法减少用户的错误。比如我们可以在提醒用户输入时,告诉他该输入什么,不该输入什么。这样很大程度上减少了用户的错误输入。可是问题并没有解决,如果用户偶尔输入错误,或者用户无视你的提醒,甚至是只猫偶尔接触了键盘呢?看来,预前提醒仅仅能够起到一定的作用。那么还有什么办法嘛?我想我们可以设置个循环,如果用户输入错误,将会给用户一个提醒,然后让他继续输入。这样就避免了程序的后继执行。很大程度上保证了程序的安全。当然,粗心的用户可能会责怪程序总是提醒自己,但是这总比程序崩溃好。
coldcrane 2002-06-09
  • 打赏
  • 举报
回复
有没搞错!!!!??????
你怎么测的?
tiancanshi 2002-06-09
  • 打赏
  • 举报
回复
上面的代码经测试也不行。
若用字符串,是比较麻烦了,因为我还需要判断数字10 呢。
coldcrane 2002-06-09
  • 打赏
  • 举报
回复

printf("\nPlease input a number");
while( 0 == scanf("%d",&i) )
{
fflush(stdin);
printf("\nInput error! Please input again:");
}
kingzeus 2002-06-09
  • 打赏
  • 举报
回复
先输入到一个字符串,然后判断是不是数字,是的话,再转化为数字.用到的函数可以看一下ctype.h,stdlib.h,string.h
KBthu 2002-06-09
  • 打赏
  • 举报
回复
不应该那么判断!

if(i>=0&&i<=9)

不过找你那么说,应该用数组来存放每一位数,然后一位一位的判断
tiancanshi 2002-06-09
  • 打赏
  • 举报
回复
要求从输入上限制用户输入字符(非数)

scanf("%d",&i);
if(i>=0&&i<=10)
printf("right!");
else
printf("wrong!");
你试着输入一个数字,再输入一个字母,根本就没区别
我现在只要求输入整数,如何判断??
KBthu 2002-06-09
  • 打赏
  • 举报
回复
没必要用系统函数吧?

自己定义函数麻
KBthu 2002-06-09
  • 打赏
  • 举报
回复
哪个函数?
tiancanshi 2002-06-09
  • 打赏
  • 举报
回复
不对,在TC3.0中用那个函数,输入0—9的数字和输入单个字母,结果都一样。
怎么可能??
KBthu 2002-06-09
  • 打赏
  • 举报
回复
if judge_digit(i) printf("数字");
else printf("非数字");
KBthu 2002-06-09
  • 打赏
  • 举报
回复
int judge_digit(int i)
{ if (i>=0&&i<=9) return 1;
else return 0;}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧