求大伙儿帮忙看看这段代码哪里出错了
求大家帮忙看看这段代码哪里出错了?
功能是从一个txt例读取特定行列的数据,当txt里全是int类型时没问题,但当我把里面数改成double类型就会出错,请大家帮忙看看txt如下
------解决思路----------------------
仅供参考
#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *fp=fopen("C:\\Users\\wan\\Desktop\\调试专用\\121.txt","r");
int a,b,c,d,n=1,m=1;
double data;
//n表示行数,m是列数,data是要读取的数据
char buf[255];
if(!fp)
{
printf("文件不存在!\n");
exit(0);
}
fscanf(fp,"%d%d",&a,&b);
c=2*a+1;
d=3*b-6;
while(!feof(fp))
{
if(n==c)
{
for(m=1;m<=d;m++)
{
fscanf(fp,"%f",&data);
}
break;
}
else
{
fgets(buf,254,fp);
n++;
}
}
fclose(fp);
printf("data=%e\n",data);
}
功能是从一个txt例读取特定行列的数据,当txt里全是int类型时没问题,但当我把里面数改成double类型就会出错,请大家帮忙看看txt如下
2 3
0.1 0.2 0.3 0.4
0.5 0.6 0.7 0.8
0.9 0.10 0.11 0.12
0.13 0.14 0.15 0.16
0.17 0.18 0.19 0.20
------解决思路----------------------
仅供参考
#include <stdio.h>
char s[]="123 ab 4";
char *p;
int v,n,k;
void main() {
p=s;
while (1) {
k=sscanf(p,"%d%n",&v,&n);
printf("k,v,n=%d,%d,%d\n",k,v,n);
if (1==k) {
p+=n;
} else if (0==k) {
printf("skip char[%c]\n",p[0]);
p++;
} else {//EOF==k
break;
}
}
printf("End.\n");
}
//k,v,n=1,123,3
//k,v,n=0,123,3
//skip char[ ]
//k,v,n=0,123,3
//skip char[a]
//k,v,n=0,123,3
//skip char[b]
//k,v,n=1,4,2
//k,v,n=-1,4,2
//End.