using C - FILE (stdio.h)
文件的类型: 二进制文件/一般文件, 只是读取和写入的方式不一样罢了
读取一般文件: (写类似)
1
2FILE *fi;
fi=fopen("15.dat","r");读取二进制文件: (写类似)
1
2FILE *fi;
fi=fopen("15.dat","rb");
读数据: (写类似)
数据规整的话 (均为同一类型) 可以全部读出, Like:
1
2
3
4FILE * fi2;
float * data2 =new float[length*width*heigth];
fi2=fopen("1.bin","rb");
fread(data2, sizeof(float), length*width*heigth, fi2);不规整的话: Like:
1
2
3
4
5
6float x,y,z,t,f;
//get to the real data point, start reading
do
{
res = fscanf(fi, "%f %f %f %f %f", &x, &y, &z, &t, &f);
} while (res != EOF && res == 5);NOTE: 写用
1
fprintf(fo, "%f\t%f\t0.0\n", a, b);
或
1
fwrite (x, 1, sizeof(float) , fo );
特别注意: fprintf 对应fscanf, fwrite对应fread, 别搞混了!!!
忽略前面的说明信息, 找到真正的开始点再读取:
1
2
3
4
5//look for a starting point
do
{
res=fscanf(fi,"%100s", stub);
} while (res != EOF && stricmp(stub, "aaaaa")!=0);注: aaaaa为你真正数据的上一个信息, 下一个就为真实数据