中易网

c语言读取txt文件中某个特定字符后面的数据 并且求这些数据的和

答案:1  悬赏:70  
解决时间 2021-01-12 09:36
c语言读取txt文件中某个特定字符后面的数据 并且求这些数据的和
最佳答案
没有万能的通用程序能做到你的要求。
因为“特定字符”可能是很奇怪的字符或控制字符,另外文件中字符的序列和组合千变万化。
所以只能针对具体的文件形式做具体处理。
例如,
读下面的文件a.txt:
axsdA1.23, 11A5.45e02, XSSA-7.88,
999A987, iikA0, llllLA3.333333
取出A后面的double型数据并求和。

完整程序如下:
#include
main(){
FILE *fin;
double x[50],y[50],z[50],sum=0.0;
int i,n=0;
fin=fopen("a.txt","r");
while(1){
if ( fscanf(fin,"%*[^A]A%lf",&x[n]) != 1) break; // 窍门在此
n++;
if (n>=50) break;
}
for (i=0;iprintf("%lf\n",x[i]);
sum=sum+x[i];
}
printf("sum=%lf\n",sum);
return 0;}

输出:
1.230000
545.000000
-7.880000
987.000000
0.000000
3.333333
sum=1528.683333追问
读取这些数字  4   5   6   15  并求和


追答假定你的 .txt 是 ASCII 文件,用下面程序读出就可以了。
读一行。
判断第一段字符串是否是 ***
若是,读一个整数。
读到文件结束。

如果你是 中文编码 文件,抱歉,没时间给你 写万能 码。中文编码文件花样太多了。

#include

main(){
FILE *fin;
int x[50];
double sum=0.0;
int i,n=0;
static char s1[80],s2[80];
static char oneline[100];
fin=fopen("a.txt","r");

while(1){
if (fgets(&oneline[0],100,fin)==NULL) break;
if (strlen(oneline) >= 4){
if ( sscanf(oneline,"%s %d",s1, &x[n]) == 2){
if (strcmp(s1,"***")==0) n++;
};
}
}
for (i=0;iprintf("%d\n",x[i]);
sum=sum+x[i];
}
printf("sum=%lf\n",sum);
return 0;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中国最有名的通灵人
疯狂看图猜成语左边一个目右边一个银子猜什么
请问这些场景是岚ARASHI的哪个节目?或者是哪
普陀区有多大面积
d( )cor( )te括号内填上字母并写出中文意思?
各位喜欢哪个呀
【紧急啊!给力!】老师们~请问:“大学四年
新载的果树几天浇一回水
老梗什么意思
昌顺五金怎么去啊,有事要去办理
魔方恢复第六步,倒L公式是什么??
关于奋发向上自信阳光的励志名言
二五仔到底是什么意思
吊砖增高和倒吊增高,是否能增高
描写松阳三桥的作文
推荐资讯
金城花园停车场(景荣路与花园景园路交叉口东1
晚安唯美句。
女生,叫你小朋友啥意思?
有没有那种画风很美的手游推荐一下
qq空间里的美食大战老鼠可以和4399的美食大战
对于公司针对员工的罚款比列是多少劳动法有上
做房产中介这个工作好吗??
比较少让王俊凯和王源单飞,为什么有很多粉丝
(x加2)平方=6x-3解方程
好运赌石俱乐部地址在什么地方,我要处理点事
女生让我给他发个168是什么意思
我说你是情商很高,学过社交力学她是怎么想的
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?