找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 526|回复: 3

[求助]:帮忙看一下下面这段程序

[复制链接]
发表于 2003-2-18 11:27:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
各位请帮个忙!我写的这段程序不知道错那里了!请帮忙改一下!
我不知道为什么这段代码运行的结果addtxt 的值永远是0啊?
  1. void TxtADD()
  2. {
  3.     ads_name ss,ent;
  4.     struct resbuf eb1;
  5.     long i,len;
  6.     char *Ptxtget;
  7.     double addtxt;
  8.     char tbuf[80];
  9.     //定义选择文字
  10.     addtxt=0.0;
  11.     eb1.restype=0;
  12.     strcpy(tbuf,"TEXT");
  13.     eb1.resval.rstring=tbuf;
  14.     eb1.rbnext=NULL;
  15.     acutPrintf("\n  累加所选择的数字程序!  ");
  16.     acutPrintf("\n  请选择要累加的数字文字!  ");
  17.     acedSSGet(NULL,NULL,NULL,&eb1,ss);
  18.     //获得选择文字的个数
  19.     acedSSLength(ss,&len);
  20.     //累加数据
  21.     for(i=0;i< len;i++)
  22.     {
  23.         acedSSName(ss,i,ent);
  24.         AcDbObjectId eId;
  25.         AcDbEntity *pent;
  26.         acdbGetObjectId(eId,ent);
  27.         acdbOpenAcDbEntity(pent,eId,AcDb::kForWrite);
  28.         AcDbText  *pText =AcDbText::cast( pent );
  29.         Ptxtget=pText->textString();
  30.         addtxt=addtxt+atof(Ptxtget);
  31.         acutPrintf("\n  第%i所累加数字为%s结果为:%d  ",i,pText->textString(),addtxt);
  32.         pent->close();
  33.     }
  34.     acedSSFree(ss);
  35. }
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-2-18 12:48:09 | 显示全部楼层

Re: [求助]:帮忙看一下下面这段程序

[QUOTE]最初由 sickman 发布
[B]各位请帮个忙!我写的这段程序不知道错那里了!请帮忙改一下!
我不知道为什么这段代码运行的结果addtxt 的值永远是0啊?
  1. void TxtADD()
  2. {
  3.     ads_name ss,ent;
  4.     struct resbuf eb1;
  5.     long i,len... [/B][/QUOTE]
复制代码

以前我也碰到过,好像是 atof() 不能用在链式表达式中。分开写吧
另外,你还应当释放 pText->textString();

  1. {
  2.         //....
  3.         [color=red]double dValue =atof(Ptxtget);
  4.         addtxt=dvalue+addtxt;[/color]
  5.         acutPrintf("\n  第%i所累加数字为%s结果为:%d  ",i,pText->textString(),addtxt);
  6.         [color=red]delete []Ptxtget;[/color]
  7.         pent->close();
  8.     }
  9. }
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-18 14:52:17 | 显示全部楼层
吓了我一跳,如果真的是Atof有问题的话,那....幸好仔细一看不是那么回事
double addtxt;
acutPrintf("\n  第%i所累加数字为%s结果为:%d  ",i,pText->textString(),addtxt);
double和%d,不能进行隐式类型转换
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-2-18 16:55:58 | 显示全部楼层
问题解决!非常感谢楼上两位!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-28 06:41 , Processed in 0.435261 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表