【实例描述】为了使用MATLAB分析处理降水现象仪的输出数据,必须把降水现像仪的原始输出数据格式变更为MATLAB可以处理的格式。由于数据量大,使用C语言处理速度较快。
【实例详情】
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
FILE *fp = NULL;
FILE *fout = NULL;
char strinput[4101];
char stroutput[5121];
int linenumber = 0;
int space = 0;
int semi = 0;
int charspace =0;
fp = fopen("aaa.txt", "r");
if(NULL == fp)
{
printf("open input file error\n");
return -1;
}
else
{
fout = fopen("./bbb.txt", "a+");
if(NULL == fout)
{
printf("can't create output file\n");
return -1;
}
else
{
while(fgets(strinput,4101, fp) != NULL)
{
//printf(strinput);
//system("pause");
//if((strinput[4101] != ' ') || ((strinput[4101]) != '\n') || ((strinput[4101]) != ' '))
if((int)strlen(strinput) == 4100)
{
while(strinput[space+4])
{
stroutput[charspace] = strinput[space+4];
charspace++;
space++;
if((charspace+1) % 5 == 0)
{
if((semi+1) % 32 == 0)
{
stroutput[charspace] = ';';
}
else
{
stroutput[charspace] = ' ';
}
charspace++;
semi++;
}
}
space = 0;
semi = 0;
charspace =0;
fputs(stroutput, fout);
fputc('\n',fout);
//fseek(fp,(linenumber+1) * 5500L, SEEK_SET);
fseek(fout, (linenumber+1)* strlen(stroutput), SEEK_SET);
linenumber++;
//fgets(strinput,5125, fp);
// fflush(fp);
//printf(stroutput);
//system("pause");
}
}
fclose(fout);
}
fclose(fp);
}
}
【实例截图】
降水现象仪输出的数据:
经过处理后的数据: