void main()
{
__int64 lines = 500000,samples = 500000;
float* data = new float[samples];
FILE *FP;
FP = fopen("D:\input.img","rb");
FILE *FP2;
FP2 = fopen("D:\output.img","wb");
for (__int64 j=0;j<lines;j++)
{
__int64 coupos =(j*samples)*sizeof(float);
rewind(FP);
_lseeki64(FP->_file,coupos,0);
//当读取的是巨型数据时必须用lseeki64函数代替fseek函数。
//如果不写跳转指针的语句,程序会自动调用fseek,也会导致出错。
//因为fseek函数的第二个参数为long型,占4个字节。
//最大只能存放2147483647,而巨型数据的指针位置可能在10000亿甚至以上。
//所以需要用__int64来存储,它的范围是900亿亿,接近无限了。
//注意:变量j和samples必须定义为__int64类型。
fread(data,sizeof(float),samples,FP); //按行读入
fwrite(data,sizeof(float),samples,FP2); //按行输出
}
}
https://wap.sciencenet.cn/blog-603044-549156.html
上一篇:
我们不喜欢不愿意被一座城市圈养下一篇:
毕业纪念册上的留言