文件读取
一般二进制文件的存储都是数据流,那么如何将数据流截取下来存到我们所需要的的二维数组里,有很多方法。这里笔者自己写了一小段代码。
代码
```c
#include<stdio.h>
#include "su.h"
#include "segy.h"
int main()
{
//input written by LEE
//read the file (binary)
FILE *fp;
float **buffer;
int nx=200,nz=200,iz,ix,x,y;
buffer=alloc2float(nz,nx);/*这里可以自己去开辟空间,
这个函数是seismic unix中的 这个函数的意义就是
float buffer[nz][nx];
*/
fp=fopen("v.bin","rb+");
//find the beginning of the file
fseek(fp, 0, sizeof(float));
//read the data
for(ix=0;ix<nx;ix++)
for(iz=0;iz<nz;iz++)
{
fread(&buffer[iz][ix],sizeof(float),nz,fp);
}
// output(the value in the binary)
printf("input the coordinates:");
scanf("%d %d",&x,&y);
printf("vlocity[%d][%d]=%f\n",y+1,x+1,buffer[y][x]);
fclose(fp);
}
参考资料:
link.https://www.runoob.com/cprogramming/c-function-fread.html
link.https://wenwen.sogou.com/z/q883376502.htm