簡體   English   中英

讀寫二進制文件-FORTRAN和C ++

[英]Read and Write Binary files-FORTRAN and 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;
}

但這行不通! 第二個代碼無法讀取第一個代碼創建的文件。 任何幫助表示贊賞!

file.tellg給出當前位置。 當您打開文件時,位置為0。要細化文件的大小,請先搜索到末尾,然后執行Tellg。

問題解決了:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM