2 qq 34570949 qq_34570949 于 2016.04.22 14:07 提问

c++ 在for循环语句中存储excel 出错 编译无错 50C

如题,整个程序编译运行无错,但利用按钮执行这个功能的时候会出现弹窗错误,如图 请大神们看看 是什么原因 悬赏追加之。
图片说明
void Cexcelt::OnDuanxingcheng()
{
int p=0,i,j,q,nrows,ncolumns=3;
for(i=0;i<4200;)
{
q=0;
while (A[i][1]==0)
{
for(j=0;j<3;j++)
B[q][j]=A[i][j];
i++;
q++;
}
while (A[i][1]!=0)
{
for(j=0;j<3;j++)
B[q][j]=A[i][j];
i++;
q++;
nrows=q;
}
p++;//数短行程个数

    Cp=(double **)malloc(nrows*sizeof(double *));
    for(i=0;i<nrows;i++)
        Cp[i]=(double *)malloc(ncolumns*sizeof(double));
        //保存为excel
    CMyExcel ExcelMain;
    MyAlignment Xalign;
    CString strTex;
    CString strp;
    strp.Format("%d",p);
    CString strw="C";
    MyNumberFormat Xnumber;
    MyBorder Xborder;
    MyFont Xfont;
    //边框线
    Xborder.Color=RGB(0,0,0);
    Xborder.LineStyle=xlContinuous;
    Xborder.Weight=xlThin;
    //对齐方式
    Xalign.HorizontalAlignment=xlCenter;
    Xalign.VerticalAlignment=xlTop;
    //数据类型
    Xnumber.GetText();
    //字体
    Xfont.Bold=TRUE;
    Xfont.ForeColor=RGB(64,130,230);
    Xfont.Shadow=TRUE;
    //字体大小
    Xfont.size=20;

    ExcelMain.Open();
    ExcelMain.AddSheet("修正数据");

    ExcelMain.GetRange("A1","L1");
    ExcelMain.SetAlignment(Xalign);
    ExcelMain.SetNumberFormat(Xnumber);
    Xfont.size=16;
    Xfont.ForeColor=RGB(0,0,0);
    ExcelMain.SetFont(Xfont);

    ExcelMain.SetItemText(1,1,"t/s");
    ExcelMain.SetItemText(1,2,"V/(km/h)");
    ExcelMain.SetItemText(1,3,"a/(m/s2)");

    ExcelMain.GetRange("A2","strp");
    Xborder.Color=RGB(0,0,0);//边框颜色
    Xborder.Weight=xlThin;//边框厚度
    ExcelMain.AutoRange();//自动量程
    for(i=1;i<=nrows;i++)
        {
            for(j=1;j<=3;j++)
            {
                strTex.Format("%.9lf",Cp[i-1][j-1]);
                strTex=ExcelMain.SetItemText(i+1,j,strTex);
            }
        }
    ExcelMain.AutoColFit();
    CString strPath;//定义字符串变量
    CFileDialog dlg(TRUE);
    if (dlg.DoModal() == IDOK)
    {
        strPath = dlg.GetPathName();
    }
    ExcelMain.SaveAs(strPath+=".xls");
    MessageBox("已保存","提示",MB_OK|MB_ICONINFORMATION);
    memset(B,0,sizeof(B));
    free(Cp);

}

5个回答

caozhy
caozhy   Ds   Rxr 2016.04.22 14:26

CMyExcel是哪里实现的,你需要有这个的代码,然后调试下。这个提示框应该是它加上的输出,而不是excel弹出的。

rikqu
rikqu   2016.04.22 14:37

新人,感谢大神哦,非常感谢。

b491985496
b491985496   2016.04.22 14:45

把CMyExcel的实现贴出来吧,这样别人没法帮你看的

qq423399099
qq423399099   Ds   Rxr 2016.04.22 14:10

单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)

CSDNXIAON
CSDNXIAON   2016.04.22 14:12

C/C++拾遗录--for循环中的三语句执行顺序
C++中利用for和while循环条件语句求两个数的和
C++中 for(; ;) 循环语句
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
转载 VS2017 编译错误
article&amp;gt; &amp;lt;div id=&quot;article_content&quot; class=&quot;article_content csdn-tracking-statistics&quot; data-pid=&quot;blog&quot; data-mod=popu_307 data-dsm = &quot;post&quot; &amp;gt; &amp;lt;div class=&quot;markdown_
VC6.0及其以上版本编译连接错误和响应解决方案汇总-不断更新中
vc6.0 错误1:fatal error C1001: INTERNAL COMP
C中容易出错(编译器不检)之30处个人总结
C中容易出错(编译器不检)之30处个人总结 在C编程中,经常有这样的情况,编译器检查时,无错,而程序结果出错或异常退出
编译器开发:C语言循环控制语句的解析
任何编程语言,最常用的就是循环语句了,无论何种编程语言,都必须包含循环控制语句,在C语言中,for, while, do..while 这三种循环语句的使用,占据了源程序代码的绝大部分,因此,要开发C编译器,对这三种循环语句的语法解析是必不可少的
阅读《编写无错的代码》
多使用assert这个小组的代码与Word 代码之间一个明显的区别是Word 代码从过去到现在一直都使用断言和调试代码,而他们的代码却几乎没有使用断言。因此,其程序员没有什么好的办法可以确定其代码中的实际错误情况,错误只能慢慢地暴露出来。如果他们在代码中使用了断言,这些错误本该在几个月之前就被检查出来。 给不够清晰的断言加上注解即可。 对函数的每个参数进行断言。 在进行
java实现C编译器:for 循环语句的解析和执行
本节我们要为解释器增加的功能是对for循环进行解析和执行,完成本节,我们的解释器将能够正确的解释执行含有for循环的C语言代码。
将Excel中存储为文本的数字转换为数字格式
有时,Exel 2007中的数字可能会作为文本格式化并存储在单元格中,这会给以后的计算造成问题或导致排序次序混乱。您可能在格式设置为文本的单元格中键入了数字,或者数据可能作为文本从外部数据源导入或复制。   格式为文本的数字在单元格中为左对齐,而不是右对齐。如果打开了“错误检查”,那么这些单元格也会用错误指示器  标记。可以将它们同时转换为一个单元格或单元格区域(区域:工作表上的两个或多个单
javascript中的循环语句
1:while循环 语法:while(表达式){ //要执行的语句块 } 2:for循环 语法:for(初始化表达式;循环条件表达式;增量表达式){ //要执行的语句块 } 3:do-while循环 语法:do{ //要执行的语句块 }while(表达式)
mfc读取excel出现的错误
数据读取错误: Microsoft Jet 数据库引擎找不到对象'tb_bull'。请确定对象是否存在,并正确地写出它的名称和路径 将SELECT Num,Name,Material FROM tb_bull 改为SELECT Num,Name,Material FROM [tb_bull$]
斐波那契数列三种循环语句程序表示
1. #include int main() {     int i;     int a[100];     a[0]=1,a[1]=2;     for(i=2;a[i-1]+a[i-2]     {            a[i]=a[i-1]+a[i-2];            printf("%d\t",a[i]);      } } 运行结果 3  5  8