读写二进制文件- fortran和c++



我正在用以下FORTRAN代码编写二进制文件:

Character(50) S
Real*8 A
A = 25.002  
OPEN(1,file='data.bin', access='stream',action='write') 
WRITE (1) A        
CLOSE(1)

并尝试用下面的c++代码来读取:

ifstream::pos_type size;
char * memblock
ifstream file ("data.bin", ios::in|ios::binary|ios::ate);
if (file.is_open())
{
  size = file.tellg();
  memblock = new char [size];
  file.seekg (0, ios::beg);
  file.read (memblock, size);
  file.close();
  delete[] memblock;
}

但是它不工作!第二个代码不能读取由第一个代码创建的文件。任何帮助,感谢!

文件。Tellg给出了当前位置。当您打开文件时,位置为0。要确定文件的大小,首先查找到末尾,然后执行

问题解决:

ifstream file ("data.bin", ios::in|ios::binary);
if (file.is_open())
{     
  double a = 0;
  file.read ((char*)&a,sizeof(double));
  file.close();    
}

最新更新