[英]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.