我正在将一些旧版 Fortran77 代码迁移到 C/C++。在 Fortran77 代码中,如果从一个文件中读入 8 个字符,它们可以毫无问题地存储在一个 real*8 类型的变量中。
是否可以在 C 或 C++ 中做类似的事情?如果是这样,我会怎么做?我一直无法在互联网上找到任何解决方案。我需要使用 C/C++ 读取 8 个字符并将它们存储在 double 类型的变量中,然后将其传递回 Fortran 并对应于原始 real*8 变量。
非常感谢您的帮助。
编辑: 作为对@sixlettervariables 的回应,我将进一步澄清我的用例。我对他的建议的问题是我只知道运行时每行的格式(即哪些字段是字符串,哪些数字),因此我不知道该结构应该静态具有哪些成员。这些字段还需要按照它们被读入的顺序占用一个连续的内存块。
具体来说,在程序的一次运行中,每一行的格式可能是:f1:string, f2:number, f3:number, f4:string,但在另一个f1:string, f2:string, f3:string, f4:number 中, f5:数字. 对于第一种情况,我需要:
struct { char[8] f1; double f2; double f3; char[8] f4}
第二个我需要:
struct { char[8] f1; char[8] f2; char[8] f3; double f4; double f5}
也许有一些方法可以用模板做到这一点?