小编mar*_*260的帖子

在c/c ++中,是否可以在double(8-bytes)类型的变量中存储8个字符(每个1字节)?

我正在将一些传统的Fortran77代码迁移到C/C++.在Fortran77代码中,如果从文件中读入8个字符,则可以将它们存储在real*8类型的变量中而不会出现问题.

是否有可能在C或C++中做类似的事情?如果是这样,我该怎么做?我无法在互联网上找到任何解决方案.我需要使用C/C++读取8个字符并将它们存储在double类型的变量中,然后传递回Fortran并对应于原始的真实*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}
Run Code Online (Sandbox Code Playgroud)

对于第二个我需要:

struct { char[8] f1; char[8] f2; char[8] f3; double f4; double f5} 
Run Code Online (Sandbox Code Playgroud)

也许有一些方法可以用模板做到这一点?

c c++ multilingual char

3
推荐指数
1
解决办法
1492
查看次数

标签 统计

c ×1

c++ ×1

char ×1

multilingual ×1