如何用C语言提取txt文本中大量的数据,如A01+000.7A01+000.8A01-000.9等等,结果为 000.7 000.8 -0.009
文件如下,文件路径为D:\进针实验\实验\1号-1.txt
几十万个数据,提取A01后面的数据(包括“+”或“-”),数据之间用空格分开,并且要求每提取出一个数据就存入文件D:\进针实验\实验\1号-1.txt,且存入文件1-1.txt中的数据要求每10个为一行,求C语言程序并能成功运行。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp(char st[],char stt[]);
int main(int argc, char *argv[])
{
FILE *fp,*fpp;
char ch,st[3];
int i = 0,len = 0;
strcpy(st,"");
fp = fopen("D:\\进针实验\\实验\\1号-1.txt","r");
fpp = fopen("D:\\进针实验\\实验\\1号-1rename.txt","w");
while(fscanf(fp,"%c",&ch) != EOF)
{
if(len == 3)
{
if(st[0] != '+')
fprintf(fpp,"%c",st[0]);
st[0] = st[1];
st[1] = st[2];
st[2] = ch;
}else
{
st[len++] = ch;
}
if(cmp(st,"A01"))
{
if(i > 0 && i != 10)
fprintf(fpp," ");
i++;
if(i == 11)
{
i = 1;
fprintf(fpp,"\n");
}
strcpy(st,"");
len = 0;
}
}
fprintf(fpp,"%c",st[0]);
fprintf(fpp,"%c",st[1]);
fprintf(fpp,"%c",st[2]);
fclose(fp);
fclose(fpp);
remove("D:\\进针实验\\实验\\1号-1.txt");
rename("D:\\进针实验\\实验\\1号-1rename.txt","D:\\进针实验\\实验\\1号-1.txt");
return 0;
}
int cmp(char st[],char stt[])
{
int i;
for(i = 0;i < 3;i++)
if(st[i] != stt[i])
return 0;
return 1;
}