读写二进制文件- 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;
}
但是它不工作!第二个代码不能读取由第一个代码创建的文件。任何帮助,感谢!
文件。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();
}
相关文章:
- 使用 VS2015 在 Windows 10 上构建 Fortran .lib x64 位并将其链接到 C++
- 将 OR 逻辑运算符从 C++ 转换为 Fortran
- Fortran 和 C++ 的混合编程:Fortran 不能调用C++子程序
- 如何在C++中获取真实值精度 与Fortran相同(Pararel Studio XE编译器)
- 读取 C++ 中的 Fortran 数据类型
- 重新编译我们的FORTRAN代码并在C++中使用后,我们的system()或C_str()命令无法正常工作
- 使用C++和fortran构建R包,Mac
- 如何将C++17 stdc++fs库链接到混合语言(C++和Fortran)CMake项目
- 混合编程 - 包括C++标头到 Fortran
- 编译 Fortran 和C++程序并从英特尔编译器链接
- 与 MSVC 一起使用的 MinGW 的 Fortran 模块导致未解析的符号"__exmod_MOD_value"
- 将指向 1D Fortran 数组的指针传递给使用 C_LOC() 进行C++会导致垃圾值
- 将分配给C++数组传递给 Fortran 子例程
- 在 Fortran 中泛化特定声明类型的操作
- CPP -D 选项,用于预处理 Fortran 代码
- 通过矢量下标访问 Fortran 数组,相当于 cpp
- 如何将矢量从C 传递到Fortran
- 将字符串从 Fortran 传递到 c++
- 是否可以从C 调用FORTRAN接口
- C /FORTRAN项目由Visual Studio 2010/Intel 2013创建,将不会在Visual St