关于两txt文件选择性数据相加问题
程序代码:
#include <stdio.h> #include<ctype.h> int main() { FILE *f1=fopen("F:\\ATD-4S\001100r.txt","r"); //读取1文件,只读方式 FILE *f2=fopen("F:\\ATD-4S\bz.txt","r"); //读取2文件,只读方式 FILE *f3=fopen("F:\\ATD-4S\1.txt","w"); //读取3文件,读写方式,存放1,2文件数据运算结果 float a,b,c; int temp=0,spc=0,date=0; //temp=行数,一段连续的空白字符=spc,date=判断是否遇到空白字符 while(temp<5) //前五行不变,复制到3文件中 { fscanf(f1,"%f",&a); fscanf(f2,"%f",&b); fprintf(f3,"%f",&c); if(a=='\n') //如果读到换行符,temp+1 temp=temp+1; } while(temp>=5&&temp<=725) //读取位置在五行后的数据处开始计算 { if(isblank(a)) //过掉开头的空白字符 { fscanf(f1,"%f",&a); //读取下一个字符 fscanf(f2,"%f",&b); fprintf(f3,"%f",&c); date=0; //date置零 } else //读取到的数据不为数据 { if(date==0) spc=spc+1; //spc+1 if(spc<2) //如果连续的空格小于1,那么继续读取数据,并复制数据到3文件 { fscanf(f2,"%f",&b); fprintf(f3,"%f",&c); } date=0; //date置零 } if(spc==2) //读到第二个连续空格之后处 { c=a+b; //数据相加并复制到3文件中 fprintf(f3,"%f",&c); } temp=temp+1; //行数+1 } }
txt数据格式如下,文件有725行,为简便起见,只发上10行,两个txt文件前五行以及第一列数据不变,第二列数据相加,复制到第三个txt文件中,请教各位我上面的程序哪里有问题?程序为什么执行无反应?
eSmoothed Frequency Respons
Resolution = 1/3 octave
Numpoints = 720
SamplingRate = 48000 Hz
Frequency(Hz) Magnitude(dB)
3.104 -27.4240
3.143 10.2568
3.182 10.0139
3.221 9.7739
3.261 9.5361
[ 本帖最后由 核晴核理 于 2013-8-29 20:03 编辑 ]