- 论坛徽章:
- 0
|
ubuntu13.10的系统,刚刚下载安装了libxls 1.4.0接口,就写了一个简单的程序实验一下,
源代码:
#include<stdio.h>
#include<xls.h>
int main(int argc,char **argv)
{
FILE *fout;
xlsWorkBook *pWb;
xlsWorkSheet *pWs;
struct st_row_data *row;
int i,j;
if((fout=fopen("1.txt","w"))==NULL){
fprintf(stderr,"Error: open file failed!\n");
return -1;
};
if((pWb=xls_open("2.xls","UTF-8"))==NULL){
fprintf(stderr,"Error: open workbook error!\n");
return -1;
};
if((pWs=xls_getWorkSheet(pWb,0))==NULL){
fprintf(stderr,"Error: open worksheet error!\n");
return -1;
};
xls_parseWorkSheet(pWs);
for(i=0;i<8;i++){
row=&pWs->rows.row;
for(j=0;j<7;j++){
fprintf(fout,"%s\t",row->cells.cell[j].str);
}
fputc('\n',fout);
}
xls_close_WS(pWs);
xls_close_WB(pWb);
fclose(fout);
return 0;
}
运行提示段错误,用gdb调试:
把断点定在fopen前:
![]()
这样看好像是fopen有问题,但是写一个只有fopen和fclose的程序测试没问题。
把断点定在fclose前:
![]()
和刚才提示不一样。。
如果断点定在第一行一直next单步执行又可以一直运行没有错误。
我晕了,不知道哪里出了问题,求大神帮助~~~ |
|