问题描述
- c语言程序读txt文本,有程序没有文本,如何根据程序写文本?谢谢
-
struct jd{
int num,s;
double p,q,S,e,f,U,zkj,dp,dq,du,de,df;
} jd[M];
struct zhl
{
int numb;
int p1,p2;
double r,x;
} zhl[M];
FILE *fp1,*fp2;/* 读取数据 /
void data(){
int h,number;
fp1=fopen("input.txt","r"); /以只读的方式打开input.text文件*/
if(fp1==NULL) /*判断input.text是否打开*/
{
printf(" can not open file !n");
exit(0);
}
fscanf(fp1,"%d,%d,%d,%d,%d,%lfn",&n,&m,&pq,&pv,&duidi,&eps);j=1;k=pq+1; for(i=1;i<=n;i++) { fscanf(fp1,"%d,%d",&number,&h); if(h==1) { fscanf(fp1,",%lf,%lf,%lf,%lfn",&jd[j].p,&jd[j].q,&jd[j].e,&jd[j].f); jd[j].num=number; jd[j].s=h; j++; } if(h==2) { fscanf(fp1,",%lf,%lfn",&jd[k].p,&jd[k].U); jd[k].num=number; jd[k].s=h; jd[k].q=0; k++; } if(h==3) { fscanf(fp1,",%lf,%lfn",&jd[n].e,&jd[n].f); jd[n].num=number; jd[n].s=h; } } for(i=1;i<=m;i++) fscanf(fp1,"%d,%d,%d,%lf,%lfn",&zhl[i].numb,&zhl[i].p1,&zhl[i].p2,&zhl[i].r,&zhl[i].x); fclose(fp1); if((fp2=fopen("output.txt","w"))==NULL) { printf(" can not open file!n"); exit(0); }
}
解决方案
重点分析一下 fscanf 的语句,就可以分析出需要的数据格式
解决方案二:
什么叫“有程序没有文本”?如果要判断一个文本是否存在就看fopen()是否成功。
解决方案三:
fscanf(fp1,"%d,%d,%d,%d,%d,%lfn",&n,&m,&pq,&pv,&duidi,&eps);
根据fscanf中的参数,可以看出文件内容应该是
整数,整数,整数,整数,整数,浮点数回车
解决方案四:
看所有的fscanf,里面定义了怎样读数据的格式
根据那个格式,写一个文件即可
时间: 2024-09-18 13:09:20