有时候我们需要读取二进制文件,下面是C++代码,经过编译后可以直接应用:
代码:
#include <iostream>
#include <fstream>
#include <cstdio>
#include <cstdlib>
using namespace std ;
int read_file(FILE *infile,int num, double *ml){
if(fread(ml,sizeof(double),num,infile)){
return 1;
}else{
return 0;
}
}
int main(int argc, char **argv){ //命令行应该有两个参数,一是文件名,二是读取字符数。
if(argc < 2){
cout<<"\n******************************************************"<<endl;
cout<<"\tWork for GLFv2 just. \n\tMeanwhile, each line with 10*(double) LK value"<<endl;
cout<<"******************************************************\n"<<endl;
fprintf(stdout,"Usage:\t%s input.glf [num:10] > outfile\n\n",argv[0]);
exit(0);
}
FILE *infile=NULL;
int num(10); //默认参数为10 double,也可以直接在命令行输入。
if(argc >= 3)
num = atoi(argv[2]);
double *ml;
infile=fopen(argv[1],"rb");
while(read_file(infile,num,ml)){
int i;
for(i=0;i<num;i++){
cout<<ml[i]<<"\t";
}
cout<<endl;
}
fclose(infile);
}
等待进一步阐释。