c语言里面的出错处理!

ZOU_SEAFARER 2006-12-29 03:52:45
C语言里面怎么处理出错.
p1=(stu *) malloc(LEN);
scanf ("%d,%f,%s",&p1->num,&p1->Score,p1->name);


输入:abc,25.6,bob enter

输入的abc不符合整数要求,想必要出错,怎么控制用户输入错误呢?怎么屏蔽这样的错误呢?有 没有通用的错误处理??
...全文
269 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bible_Chou 2007-01-10
  • 打赏
  • 举报
回复
先输入到字符串中,然后再检查是否存在输入错误。

goodluckyxl 2007-01-10
  • 打赏
  • 举报
回复
i = scanf("%d,%f,%s",&p1->num,&p1->Score,p1->name);
while( i != 3 )
{
printf( "input error,please input again\n" );
i = scanf("%d,%f,%s",&p1->num,&p1->Score,p1->name);
}
不晓得这样行不,等下面的高人回答,学习。。。。

//要把缓冲内数据刷掉,scanf接收异常会直接跳出处理
ZOU_SEAFARER 2007-01-10
  • 打赏
  • 举报
回复
scanf 在楼主你所说的错误输入时候,
会跳过当前的 scanf 语句
(也就是从 错误 数据类型位置开始,后面的没有被赋值)

而这个错误输入将滞留在输入缓冲中。=======================
后面的没有被赋值 //这个就是我们不愿意看到的,想用一个什么通用函数,能把我们没有预料到的错误都引导到这里来,这样虽然也得不到正确的效果,但是至少用户知道出错了,程序不会被崩溃!

jixingzhong 2007-01-09
  • 打赏
  • 举报
回复
scanf 在楼主你所说的错误输入时候,
会跳过当前的 scanf 语句
(也就是从 错误 数据类型位置开始,后面的没有被赋值)

而这个错误输入将滞留在输入缓冲中。
jixingzhong 2007-01-09
  • 打赏
  • 举报
回复
只能自己写一个处理函数进行错误控制
softwarewander 2007-01-09
  • 打赏
  • 举报
回复
呵呵, 可以尝试一下自己写一个c语言的异常处理
hustivan 2007-01-09
  • 打赏
  • 举报
回复
这个就是我等要学的东西啊~~
ZOU_SEAFARER 2007-01-09
  • 打赏
  • 举报
回复
这个也就是纠正着 一个错误,但是有很多错误我们都没有办法预料,但是有不想这个程序崩溃,应该怎么做呢??
skfox 2006-12-29
  • 打赏
  • 举报
回复
up
EternalStar 2006-12-29
  • 打赏
  • 举报
回复
先将输入写到一临时字符串里检查


正确后再写入变量
EternalStar 2006-12-29
  • 打赏
  • 举报
回复
好像要自己控制


sl19820216 2006-12-29
  • 打赏
  • 举报
回复
你可以先读入字符 再判断是否是数字

isdigit()

再把字符串转成数字÷

atoi()
abcd_abcd 2006-12-29
  • 打赏
  • 举报
回复
int i;
i = scanf("%d,%f,%s",&p1->num,&p1->Score,p1->name);
while( i != 3 )
{
printf( "input error,please input again\n" );
i = scanf("%d,%f,%s",&p1->num,&p1->Score,p1->name);
}
不晓得这样行不,等下面的高人回答,学习。。。。
ZOU_SEAFARER 2006-12-29
  • 打赏
  • 举报
回复
VB 里面有 ON ERROR GOTO
C里面有什么呢??

69,382

社区成员

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

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