我想把数组中的数据转换成字符串写入word,代码如下:
    for(int i=0;i<=pum;i++)
  {
   CString dv=("");
dv.Format("3.2lf%",y[i-1]);
opwd.m_Sel.TypeText(dv);
  }
   结果能通过编译,但是运行的时候报错:
  Debug Assertion Failed!
  File:f:\dd\vctools\crt_bld\self_x86\crt\src\output.c
  Expression:((state==ST_NORMAL)||(state==ST_TYPE))
 
  哪位高手能指点一二吗,我单步调试后,发现问题出在这一句上:
  dv.Format("3.2lf%",y[i-1]);
  但是我实在是找不出这一句有什么问题啊。

解决方案 »

  1.   

    还有,数组的范围也要小心啊。当i=0时,y[i-1]会怎么样?
      

  2.   

       还有个问题,每次写完一行后我都用TypeParagraph()换行一次,但是我后面插入一张表格,居然跑到第一行去了,前面写的字符都不见了,这是为什么
      

  3.   

    源代码如下:
    bool rv=pub.FileExit(Cpn);//判断图片是否存在
    if(rv&&(mydb.pSet->State))
    {
    //输出代码 
    CString Title=_T("查询结果:");//记得设置大标题字体
        if(opwd.newmywd())
    {
    opwd.writetext(Title);
    opwd.writetext("交易记录:");
    opwd.m_Sel.MoveDown(COleVariant((short)4),COleVariant((short)1),COleVariant((short)0));
    opwd.createwdtable(pnum+1,2);

    for(int i=0;i<=pnum;i++)
    {
    if(0==i)
    {
    opwd.m_Sel.MoveDown(COleVariant((short)4),COleVariant((short)1),COleVariant((short)0)); 
    opwd.m_Sel.MoveLeft(COleVariant((short)1),COleVariant((short)1),COleVariant((short)0));
    opwd.m_Sel.TypeText("时间");
    opwd.m_Sel.MoveRight(COleVariant((short)1),COleVariant((short)1),COleVariant((short)0));
    opwd.m_Sel.TypeText("交易项目");
    }
    else
    {
    opwd.m_Sel.MoveDown(COleVariant((short)5),COleVariant((short)1),COleVariant((short)0)); 
    opwd.m_Sel.MoveLeft(COleVariant((short)1),COleVariant((short)1),COleVariant((short)0));
    CString dt=mydb.pSet->GetCollect("日期");
    opwd.m_Sel.TypeText(dt);
    opwd.m_Sel.MoveRight(COleVariant((short)1),COleVariant((short)1),COleVariant((short)0));
    CString dv=("");
    dv.Format("%3.2lf",y[i-1]);
    opwd.m_Sel.TypeText(dv);
    mydb.pSet->MoveNext(); 
    }
    }
    mydb.pSet->MoveFirst();
    opwd.createmywd(Cwdpn);
            opwd.relres();
    }

    }
    else
    {
    AfxMessageBox("请查询后再生成报表!");
    }
      

  4.   

         上面代码中从数据库读取数据生成的表格成功插入Word文档,但是之前的两句“查询结果:”“交易记录:”都没有写入,但是当我把生成表格的代码注释掉以后,这两句话都写入word了,这是为什么?